asp.net-mvc – 发送一个ViewModel,其中包含一个带有Html.BeginF
发布时间:2020-12-16 07:19:18 所属栏目:asp.Net 来源:网络整理
导读:我的viewmodel包含一个整数列表,我遇到的问题是,当我发送修改后的表单viewmodel时,它总是等于null. 我的ViewModel: public class testViewModel { public Listint itemTest { get; set; } 控制器中的操作: For example,I’ll try to sum ??the new values
我的viewmodel包含一个整数列表,我遇到的问题是,当我发送修改后的表单viewmodel时,它总是等于null.
我的ViewModel: public class testViewModel { public List<int> itemTest { get; set; } 控制器中的操作:
public ActionResult form(int nbre) { testViewModel montest = new testViewModel() { itemTest = new List<int>() }; for(int i=0;i<nbre ;i++) { montest.itemTest.Add(0); } return View(montest); } [HttpPost] [ValidateAntiForgeryToken] public ActionResult form(testViewModel maListe) { int somme = 0; if (maListe.itemTest != null) { if (maListe.itemTest.Count() != 0) { foreach (var item in maListe.itemTest) { somme += item; } } } //listtest = maListe; return RedirectToAction("test2",new { qte = somme }); } 我的看法 @model MvcWebRole1.ViewModels.testViewModel @{ ViewBag.Title = "Formulaire"; } @using (Html.BeginForm()) { @Html.AntiForgeryToken() @Html.ValidationSummary(true) <table> @foreach (var item in Model.itemTest) { <tr > <td > @Html.Label("Quantitée") </td> <td> @Html.EditorFor(model => item) @Html.ValidationMessageFor(model => item) </td> </tr> } </table> <input type="submit" value="Valider" /> } 谢谢你,帮帮我 解决方法
您需要为集合中的每个项目编制索引.您的代码的问题似乎是使用foreach.你真的想用它来代替并使用EditorFor调用传入索引.
for (int i = 0; i < Model.Items.Count; i++) { @Html.EditorFor(m => m.Items[i]) } 这仅适用于永远不会更改其顺序的有序列表.如果您想重新排序项目,我建议您阅读Phil Haack关于向服务器发送列表的精彩帖子. http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ASP.NET – 主页面中的更新面板,内容页面中的刷新按钮
- asp.net-mvc – 从扩展Apicontroller的MVC控制器返回Json
- asp.net-mvc – Sitecore和ASP.net MVC
- .net – Umbraco Yay还是Nay?
- asp.net-core – Razor模板中的特殊字符未正确编码
- 在asp.net mvc中添加JavaScript文件
- asp.net core 系列 9 三种运行环境和IIS发布
- asp.net – 如何在MVC 5中为OwinContext设置TimeOut
- asp.net – 我可以同时拥有Controller和ApiController吗?
- asp.net – Azure应用程序中的4分钟超时