请在下面我有一个模型课
public class EditJob
{
public JobPost JobPost { get; set; }
public IEnumerable<JobRequirement> JobRequirement { get; set; }
public IEnumerable<JobResponsibility> JobResponsibility { get; set; }
}
我强烈地将类绑定到视图,并希望将其用于在控制器中进行编辑。我有一个接收如下模型的控制器。
[HttpPost]
public ViewResult SaveJob(EditJob model)
{
}
在下面的视图中,我将Ienumerable动态绑定到texbox。
@for (int i = 0; i < Model.JobResponsibility.Count();i++ )
{
JobWebsite.Domain.Enitities.JobResponsibility rs = Model.JobResponsibility.ElementAt(i);
<label class="control-label">Responsibility :</label>
Html.Hidden("Responsibility[" + i + "]", rs);
@Html.TextBoxFor(x => rs, new { @class = "form-control" }) <br />
}
单击按钮时,我意识到模型中的两个IEnumerable方法没有绑定。模型中的JobPosts不为空,但我的Ienumerable属性并不总是为空。我添加了一个隐藏字段来保存我的值,但是在将它们传递给控制器时遇到问题。请我如何做到这一点?
如果检查html,您将看到控件name
属性没有正确的绑定索引器。可以将collections更改为IList
并按以下方式使用:(请注意,您尚未为其发布模型,JobResponsibility
所以我假设它包含属性ID
和Name
)
@for (int i = 0; i < Model.JobResponsibility.Count; i++ )
{
@Html.HiddenFor(m => m.JobResponsibility[i].ID)
@Html.TextBoxFor(m => m.JobResponsibility[i].Name)
}
或者,EditorTemplate
为以下类型创建自定义JobResponsibility
/Views/Shared/EditorTemplates/JobResponsibility.cshtml
@model JobResponsibility
@Html.HiddenFor(m => m.ID)
@Html.TextBoxFor(m => m.Name)
并在主视图中
@model EditJob
@using(Html.BeginForm())
{
.....
@Html.EditorFor(m => m.JobResponsibility)
....
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句