首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC ViewModel中的ViewModel

MVC ViewModel中的ViewModel
EN

Stack Overflow用户
提问于 2014-07-07 21:00:05
回答 2查看 94关注 0票数 0

我一直试图更好地掌握模型和ViewModel设计。对在座的大多数人来说,这可能是个愚蠢的问题。首先,这里是我的模型:

代码语言:javascript
复制
public class Cities
{
    [Key]
    public int CityID { get; set; }
    public string City { get; set; }
    public int Miles { get; set; }
    public string State { get; set; }
    public string ZipCode { get; set; }
}

现在,当我在表示层中创建我的ViewModel时,我是否可以使用IEumerable<>传递城市表中的所有记录:

代码语言:javascript
复制
public class CitiesViewModel
{
    public IEnumerable<Cities> Cities { get; set; }
}

然后我就可以和我的控制器遍历所有的记录:

代码语言:javascript
复制
    [HttpGet]
    public ActionResult List()
    {
        CitiesViewModel model = new CitiesViewModel
        {
            Cities = repository.Cities
            .OrderBy(p => p.City)
        };
        return View(model);
    }

或者,我应该只传递我希望自己的视图能够访问的唯一数据:

代码语言:javascript
复制
public class CitiesViewModel
{
    //public IEnumerable<Cities> Cities { get; set; }

    public string City { get; set; }
    public string State { get; set; }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-07 21:12:53

你可以:

代码语言:javascript
复制
class CityViewModel
{
    public string City { get; set; }
    public string State{ get; set; }
}

然后:

代码语言:javascript
复制
class CitiesViewModel
{
    public IEnumerable<CityViewModel> Cities { get; set; }
}
票数 2
EN

Stack Overflow用户

发布于 2014-07-07 21:08:13

这取决于您希望在视图上显示什么。如果一个城市的详细信息使用:

代码语言:javascript
复制
public class CitiesViewModel
{


    public string City { get; set; }
    public string State { get; set; }
}

但是,如果要显示cites列表,请使用:

代码语言:javascript
复制
public class CitiesViewModel
{
    public IEnumerable<Cities> Cities { get; set; }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24619802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档