我有一个具有以下属性的用户视图模型:
public User user;
public List<Language> Languages;
我将上面的模型发送到视图并使用html帮助器来构建表单,所以我最终得到了类似的东西:
<form action="/Users/Edit/5" method="post"><input id="user_UserId" name="user.UserId" type="hidden" value="5" />
名字
姓
电子邮件
<br />
<input id="user_Email" name="user.Email" type="text" value="test@gmail.com" />
语言
-
烯
烯
现在,我尝试在最初类似的内容中阅读POST:
[AcceptVerbs( HttpVerbs.Post )]
public ActionResult Edit(int UserId,FormCollection form){
并且无法获取user.UserId变量,user.FirstName变量等。
知道需要做些什么才能阅读这种POST请求。我有点不愿意修改我的ViewModel,因为它很简单,易于维护。
谢谢。
答案 0 :(得分:2)
前段时间我遇到过类似的问题。这篇文章很有帮助: Editing a variable length list
答案 1 :(得分:0)
显然,简单的答案是使用前缀,例如:
public ActionResult Edit([Bind(Prefix="user")] int UserId, FormCollection form ) {
}
但是,我还是得到了
参数字典包含一个 参数'UserId'的null条目 非可空类型'System.Int32' 方法'System.Web.Mvc.ActionResult 编辑(的Int32, System.Web.Mvc.FormCollection)'
知道如何解决这个问题吗?