ASP.NETMVCViewModel和DropDownList我的ViewModel类ViewModel1中有2个属性{DictonaryPossibleValues{get;set;}//key/valueintSelectedKey{get;set}}我想使用Html.DropDownListFor对其进行编辑我希望MVC自动将数据序列化到ViewModel或从ViewModel中获取数据,以便我可以执行以下操作publicActionResultEdit(ViewModel1model)...来实现这是什么以一个目标做到这一点的最佳方法?正如womp所说,浏览器只会提交下拉列表的选定值。这很容易被默认的模型活页夹绑定,见下文。如果你没有在客户端编辑PossibleValues列表,你不需要commit回来。如果您需要重新填充列表,请使用您最初用于填充“字典”的相同方法在后期操作中在服务器端进行。例如在你的页面中:“%>x.SelectedKey,newSelectList(Model.PossibleValues,"key","value"))%>在你的控制器中[AcceptVerbs(HttpVerbs.Get)]publicViewResultEdit(){varmodel=newViewModel1{PossibleValues=GetDictionary()//在这里填充你的字典};returnView(model);}[AcceptVerbs(HttpVerbs.Post)]publicViewResultEdit(ViewModel1model){//默认模型绑定模型.PossibleValues=GetDictionary();//repopulateyourDictionaryherereturnView(model);}whereGetDictionary()isamethodthatreturnsapopulatedDictionaryobject.SeethissimilarquestionfordetailsIdon'tthinkyoucan下拉列表构建一个字典。下拉列表将只返回一个值,您可以将其设置为SelectedKey属性,但您将无法从中重建PossibleValues字典。为了重建字典,您需要有一个其中每个条目的表单字段......你可以做这样的事情,用你的字典上的foreach循环生成:。..最后我会质疑是否需要从表单中重新填充字典。如果他们只能选择一个值,为什么PossibleValues不直接从ViewModel之外的某个地方查找它(比如在您的存储库中?)为什么将它与ViewModel一起存储?解决方案是ASP.NETMVC框架中的自定义ModelBinding,这里有一些示例。odetocode.com/Blogs/scott/archive/2009/04/27/12788.aspxodetocode.com/Blogs/scott/archive/2009/05/05/12801.aspx希望你觉得它们有用...谢谢以上是C#学习教程:ASP.NETMVCViewModel和DropDownList分享的所有内容,如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
