1

我有一个关于如何使用 MVC 模式正确地将数据传递给视图的快速问题。

我有一个 EditProfile/Register 模型(姓名、电子邮件、国家/地区)。视图有一个国家下拉列表,我需要传递一个国家列表。

创建一个新模型(仅用于视图)是否正确,它基本上封装了我的 EditProfile/Register 模型和一个列表?我是否在控制器中创建此视图特定模型?(与我的数据访问项目相反)。

谢谢!

4

2 回答 2

2

视图模型(用于 ASP.Net MVC 视图)与域模型(数据层中的一个)无关,但名称除外。这个MVC: Data Models and View Models问题详细介绍了差异/相似之处。

您在 ASP.Net MVC 项目中的某处创建视图模型(不在数据层中),通常将“模型”或“视图模型”文件夹与 Controllers 文件夹同级放置。根据视图,可以共享一些视图模型类,但您也会有一些由单个视图使用。

于 2012-10-02T21:33:27.227 回答
0

你有两种方法来完成这个任务

(i) 推荐

创建视图模型添加类型选择列表的属性

<code>

    public SelectList countrylist
        {
            get;
            set;
        }
</code>

在视图模型类的构造函数中,从国家表中分配国家列表。

<code>

     countrylist= new SelectList(db.countries.ToList(), "CountryID", "CountryName");

</code>

在您添加的视图中

<code>
     Html.DropDownList("CountyID", Model.countrylist,"Select")
</code>

(ii)仅当您必须使用此模型且视图很少时才使用(如您的情况所示)

不要创建视图模型,而是使用 jquery,并在准备好查看页面的文档中为国家/地区列表添加一个 html 选择。

于 2012-10-03T14:03:27.783 回答