2010-06-04 52 views
0

我试图在ASP.NEt MVC 2以选择列表的视图。我怎么得到我的选择列表返回与所选项目(asp.net MVC 2)

我填补选择列表的语言从我的模型(regDom)

listLangModel是我从数据库中检索语言列表。

regDom.Languages =由升的listLangModel

   select new SelectListItem 
        { 
         Text = l.Name, 
         Value = l.ID 
        }; 

在我看来,我有这个

 <div class="editor-label"> 
      <%: Html.LabelFor(model =>> model.Languages) %> 
     </div> 
     <div class="editor-field"> 
      <%: Html.DropDownListFor(model => model.Languages, Model.Languages) %> 
      <%: Html.ValidationMessageFor(model => model.Languages) %> 
     </div> 

当我运行,语言都在下拉列表在我的页面上。 但是,当我将它发回我的服务器时,该模型不再包含这些语言。 而我无法检查在页面上选择了哪种语言。

回答

1

用户可以选择只从下拉列表中选择一个单一的语言,所以你不能指望它来填充模型的Languages财产是一个集合。

添加属性来保存所选择的语言在你的模型:

public string SelectedLanguage { get; set; } 

,然后绑定下拉列表这个特性:

<%: Html.DropDownListFor(model => model.SelectedLanguage, Model.Languages) %> 
+0

谢谢你,现在我可以看到哪些语言选择。 但我可以通过我的语言回来。如果有些输入无效(因为业务规则),我可以用所有语言回馈我的表单吗? – Masna 2010-06-04 16:50:51

+0

是的,您将模型传递给视图('返回视图(模型)'),该视图具有'Languages'属性,其中包含允许您重新绑定下拉列表的所有语言。 – 2010-06-04 16:52:26

+0

Thx快速回答。 但现在我得到这个错误: 具有关键“SelectedLanguage”的类型“System.String”的,但必须是类型“的IEnumerable ”的ViewData的项目。 当我调试时,我的对象的语言变量在它返回时为空 。 – Masna 2010-06-04 16:58:25

相关问题