2012-10-02 136 views
1

我只是如何正确数据传递到使用MVC模式的图一个简单的问题。模型视图在MVC

我有一个EditProfile /注册模型(姓名,电子邮件,国家)。该视图有一个国家下拉列表,我需要通过它的国家名单。

是改正创建(只为视图)的新模式,即基本上封装我EditProfile /注册模式和列表?我是否在控制器中创建此视图特定模型? (而不是我的数据访问项目)。

谢谢!

+0

只是为了澄清,您使用ASP.Net MVC?如果是这样,请将版本特定标签添加到您的问题中,而不仅仅是'mvc'标签。所以如果你使用ASP.Net MVC 2,使用'asp.net-mvc-2'标签。 – Gromer

回答

2

视图模型(ASP.Net MVC视图)是不相关的域模型(一个在数据层),除了名字。这个MVC: Data Models and View Models问题涵盖了细节上的差异/相似之处。

你在你的ASP.Net MVC项目的地方创建视图模型(而不是在数据层),通常放在“模型”或“的ViewModels”文件夹同级控制器文件夹。根据视图,可以共享某些视图模型类,但您也可以使用单个视图使用的一些视图模型类。

0

您有两种方法来完成这项任务

(一)推荐

创建一个视图模型 在你的视图模型类分配的构造函数中添加类型选择列表的

<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)只使用,如果你要使用这个模型极少数的意见(如你的情况看来)

不作viewmodel,而不是使用jquery,并且在vew页面的文档准备中为国家列表添加一个html选项。