asp.net-mvc – ViewModel中的ASP.NET MVC SelectList
发布时间:2020-12-15 22:19:55 所属栏目:asp.Net 来源:网络整理
导读:我在ASP.NET MVC 5中工作(但这很可能也适用于以前的版本).问这个问题的最好方法是向您展示代码: 这是视图模型: public class PersonCreateViewModel{ public SelectList cities {get; set;} public String Name { get; set; } public String Address { get
我在ASP.NET MVC 5中工作(但这很可能也适用于以前的版本).问这个问题的最好方法是向您展示代码:
这是视图模型: public class PersonCreateViewModel { public SelectList cities {get; set;} public String Name { get; set; } public String Address { get; set; } } 这是控制器的http Post方法: [HttpPost] [ValidateAntiForgeryToken] public ActionResult Create(PersonCreateViewModel viewmodel) { if (ModelState.IsValid) { //Add to database here and return } //return back to view if invalid db save return View(person); } 这是视图: <div class="form-group"> @Html.LabelFor(model => model.person.name,new { @class = "control-label col-md-2" }) <div class="col-md-10"> @Html.EditorFor(model => model.person.name) @Html.ValidationMessageFor(model => model.person.name) </div> </div> <div class="form-group"> @Html.LabelFor(model => model.person.address,new { @class = "control-label col-md-2" }) <div class="col-md-10"> @Html.EditorFor(model => model.person.address) @Html.ValidationMessageFor(model => model.person.address) </div> </div> <div class="form-group"> @Html.LabelFor(model => model.person.CityID,"CityID",new { @class = "control-label col-md-2" }) <div class="col-md-10"> @Html.DropDownList("cities") @Html.ValidationMessageFor(model => model.person.CityID) </div> </div> 当用户单击“提交”时,浏览器中会显示以下错误消息: 我认为这与我在ViewModel中有一个SelectList的事实有关.我认为当视图在表单提交时将模型传递回控制器时,它会调用SelectList的构造函数,但是没有SelectList的无参数构造函数.我不知道该怎么办.任何帮助表示赞赏!! 解决方法
我总是使用IEnumerable获得更好的运气
public class PersonCreateViewModel { public IEnumerable<SelectListItem> cities {get; set;} public int CityId { get; set; } public String Name { get; set; } public String Address { get; set; } } 此外,您将需要视图模型上的属性来捕获选定的值,如CityId. 然后你可以使用: Html.DropDownListFor(m => m.CityId,Model.cities) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 解析接受标题
- 使用log4net和ASP.NET跟踪会话变量
- ASP.NET MVC 4 / Web API – 为Accepts插入Razor渲染器:te
- asp.net-mvc – Facebook Javascript登录示例
- asp.net – 在编辑模式下未选择的Html.DropDownListFor值
- asp.net-mvc – 在MVC Web应用程序中设置默认值
- asp.net – 如何以编程方式覆盖web.config设置
- asp.net jQuery Ajax用户登录功能的实现
- 关于asp.net调用gemalto超级狗api的具体实现
- ASP .Net服务器控制事件顺序