ASP.NET MVC模型绑定IList <>参数
发布时间:2020-12-15 19:06:59 所属栏目:asp.Net 来源:网络整理
导读:[我自己解决了,查看我的答案原因] 我无法获取IList的表单值。控制器方法中的参数设置正确。 我的控制器类看起来像这样: public class ShoppingBasketController : Controller { public ActionResult Index() { return View(); } [AcceptVerbs(HttpVerbs.Po
[我自己解决了,查看我的答案原因]
我无法获取IList<>的表单值。控制器方法中的参数设置正确。 我的控制器类看起来像这样: public class ShoppingBasketController : Controller { public ActionResult Index() { return View(); } [AcceptVerbs(HttpVerbs.Post)] public ActionResult Add(IList<ShoppingBasketItem> items) { Session["basket"] = items; // for testing return RedirectToAction("Index"); } } public class ShoppingBasketItem { public int ItemID; public int ItemQuantity; } 略微修剪的形式: <% using (Html.BeginForm("Add","ShoppingBasket")) { %> <% int codeIndex = 0; foreach (Product product in products) { %> <%= Html.Hidden("items[" + codeIndex + "].ItemID",product.Id) %> <%= Html.TextBox("items[" + codeIndex + "].ItemQuantity","0",new { size = "2"}) %> <% codeIndex++; } } %> 其中产生标记像: <form action="/Basket/Add" method="post"> <input id="items[0]_ItemID" name="items[0].ItemID" type="hidden" value="1" /> <input id="items[0]_ItemQuantity" name="items[0].ItemQuantity" size="2" type="text" value="0" /> <input id="items[1]_ItemID" name="items[1].ItemID" type="hidden" value="2" /> <input id="items[1]_ItemQuantity" name="items[2].ItemQuantity" size="2" type="text" value="0" /> <input id="items[2]_ItemID" name="items[2].ItemID" type="hidden" value="3" /> <input id="items[2]_ItemQuantity" name="items[2].ItemQuantity" size="2" type="text" value="0" /> </form> 我检查了提交的表单值,它们是正确的。正确数量的ShoppingBasketItems也被放入Session [“basket”],但是每个的ItemID和ItemQuantity都为零。它似乎正在解码表单值的列表,但不是拾取属性本身。 我使用MVC RC2,并基于一个article by Scott Hanselman我很确定我的代码是正确的。我缺少什么? 解决方法
解
下载MVC源后,我仍然不能明白为什么它不工作,所以我推测它必须与我试图绑定的类型有关。果然,值是成员变量,而不是属性,是罪魁祸首。这是因为模型绑定器使用反射来设置属性,这是通过调用TypeDescriptor.GetProperties(Type)找不到的。 更新值类,到这个解决它(在几个小时的打头后,我应该添加!!): public class ShoppingBasketItem { public int ItemID { get; set; } public int ItemQuantity { get; set; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 如何在一个视图中使用两个IENumerable模型
- ASP.NET,C#后台调用前台javascript的五种方法
- .net – 如何检查用户是属于AD组还是嵌套组?
- 一键式ASP.NET Web部署包括先决条件?
- 如何从asp.net中的客户端网络摄像头捕获图像
- asp.net-mvc – ‘System.Web.Webpages.Html.Htmlhelper’不
- ASP.NET POST-DATA截断为49152字节(48K)
- js触发asp.net的Button的Onclick事件应用
- asp.net-mvc-3 – 单元测试一个文件上传,怎么样?
- asp.net-mvc – Sitecore 7和MVC 4集成
推荐文章
站长推荐
- 如何显示或隐藏基于角色的控件 – ASP.NET MVC 4
- .net – 在WebApi中,我应该在哪里调用ActionFilt
- asp-classic – 检查字符串是否以“经典ASP中的另
- asp.net-mvc – ASP.Net MVC,动态属性和EditorFo
- asp.net – 通过Visual Basic从网站检索数据
- asp.net-mvc-3 – 找不到ASP.NET MVC 3 HttpPost
- asp.net – 如何在IIS Express下启用区分大小写?
- asp.net-mvc-4 – 使用Bootstrap日期时间选择器,
- ASP.NET Identity外部认证提供程序自定义图标
- asp.net-mvc – MVC授权属性HttpUnauthorizedRes
热点阅读