Asp.net mvc 3 表格mvc3-局部观察柱
我有一个partialView\u BasicInfo PartView与BasicInfo模型的关联。 此partialview包含一些输入和下拉列表,如下所示:Asp.net mvc 3 表格mvc3-局部观察柱,asp.net-mvc-3,razor,Asp.net Mvc 3,Razor,我有一个partialView\u BasicInfo PartView与BasicInfo模型的关联。 此partialview包含一些输入和下拉列表,如下所示: public class BasicInfoModel { public string Name { get; set; } public string selectedRubric { get; set; } public IEnumerable<SelectListItem&g
public class BasicInfoModel
{ public string Name { get; set; }
public string selectedRubric { get; set; }
public IEnumerable<SelectListItem> Rubrics { get; set; }
}
可以在任何页面的表单中调用此partialview。只需要在页面模型中添加BasicInfo模型
public class RandomPageModel
{
public basicInfoModel { get; set; }
public string info2{ get; set; }
...
public RandomPageModel()
{ this.basicInfoModel = new basicInfoModel ();}
}
RandomPage.cshtml
@using (Html.BeginForm())
{
@Html.Partial("_BasicInfoPartView ", @Model.BasicInfoModel)
@Html.TextBoxFor(m => m.info2)
...
<input type="submit" />
}
@使用(Html.BeginForm())
{
@Html.Partial(“_BasicInfoPartView”,@Model.BasicInfoModel)
@Html.TextBoxFor(m=>m.info2)
...
}
现在的问题是:
我可以毫无问题地填充页面。
但当我尝试从模型检索控制器中的信息时:
RandomPageModel.info2好的!
RandomPageModel.BasicInfo模型为空
我想我无法理解数据绑定的概念:s
我这样做是因为我不想让小的JS函数使我的页面过载,也不喜欢复制表单的想法(代码维护)
提前谢谢
Cantinos。在这种情况下,您需要使用编辑器模板,而不是局部视图 因此您定义了一个editorTemplate(强类型) 将此编辑器模板命名为与模型相同的名称,并将其放入共享视图文件夹中名为EditorTemplates的文件夹中 ~/Views/Shared/EditorTemplates/BasicInfoModel.cshtml 然后换掉这条线
@Html.Partial("_BasicInfoPartView ", @Model.BasicInfoModel)
为了这个
@Html.EditorFor(m => m.BasicInfoModel)
在这种情况下,需要使用编辑器模板而不是局部视图 因此您定义了一个editorTemplate(强类型) 将此编辑器模板命名为与模型相同的名称,并将其放入共享视图文件夹中名为EditorTemplates的文件夹中 ~/Views/Shared/EditorTemplates/BasicInfoModel.cshtml 然后换掉这条线
@Html.Partial("_BasicInfoPartView ", @Model.BasicInfoModel)
为了这个
@Html.EditorFor(m => m.BasicInfoModel)
您可以去掉编辑器模板名称中的“ux”,使用@Html.EditorFor(m=>m.BasicInfoModel)谢谢您的回答!它可以工作,但我需要将@Html.EditorFor(m=>m.BasicInfoModel,“BasicInfoPartView”)放入,因为他找到了视图是的,如果模板的名称与模型的名称不同,则必须提供该名称作为第二个参数。很高兴你成功了!您可以去掉编辑器模板名称中的“ux”,使用@Html.EditorFor(m=>m.BasicInfoModel)谢谢您的回答!它可以工作,但我需要将@Html.EditorFor(m=>m.BasicInfoModel,“BasicInfoPartView”)放入,因为他找到了视图是的,如果模板的名称与模型的名称不同,则必须提供该名称作为第二个参数。很高兴你成功了!