ASP.NET MVC模型绑定IList 参数
发布时间:2020-05-27 19:08:22 所属栏目:asp.Net 来源:互联网
导读:[我自己解决了,查看我的答案原因] 我无法获取IList的表单值。控制器方法中的参数设置正确。 我的控制器类看起来像这样: public class ShoppingBasketController : Controller { public ActionResult Index() { return View(); } [AcceptVerbs(H
|
[我自己解决了,查看我的答案原因] 我无法获取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-4 – 首先无法识别mvc代码中的“启用迁移”一词
- Asp.net形成认证cookie,不符合IIS7超时
- 如何在ASP.Net WebControl的“Content”内部属性中包含其他
- asp.net – 如何从SQL Server 2008本身获取客户端IP地址?
- ASP.Net MVC – 从HttpPostedFileBase读取文件,而不保存
- asp.net-mvc-3 – 列模板kendo ui grid mvc动作链接
- 新的ASP.NET Web应用程序:有一个Login按钮可以执行某些操作
- asp.net – 移动浏览器设备检测在.NET
- 实体框架 – 使用实体框架数据模型添加验证属性
- 在MVC中使用Json.Net序列化和反序列化Json对象
