这是我的模型。当模型包含模型时,默认模型绑定不起作用
public class InfoModel
{
public NameModel Name { get; set; }
public string Phone { get; set; }
}
public class NameModel
{
public string FirstName { get; set; }
public string LastName { get; set; }
public NameModel(string first, string last)
{
this.FirstName = first;
this.LastName = last;
}
}
然后,我有一个局部视图只是为如下
@model MyTestApp.Models.NameModel
@Html.LabelFor(m => m.LastName)
@Html.TextBoxFor(m => m.LastName)
<br />
@Html.LabelFor(m => m.FirstName)
@Html.TextBoxFor(m => m.FirstName)
显示名字再有就是对ShowInfo
视图@model MyTestApp.Models.InfoModel
@using (@Html.BeginForm())
{
@Html.Partial("ShowName", Model.Name)
<br />
@Html.LabelFor(m => m.Phone)
@Html.TextBoxFor(m => m.Phone)
<br />
<input type="submit" value="Submit Info" />
}
现在用户提交的任何信息,跟踪控制方法称为
[HttpPost]
public ActionResult ShowInfo(InfoModel model)
{
...
}
问题是,当我检查模型的值,电话很好,但名称为空。任何想法如何使其工作?
添加默认构造函数不能解决这个问题 – 2011-12-21 21:36:21
我已经更新了我的答案,您仍然需要默认构造函数:) – nemesv 2011-12-21 21:55:51
所以我不能在这里使用局部视图并且必须使用EditorFor?你能否详细说明一下? – 2011-12-21 22:01:39