我已经在现有表单中添加了一个复选框列表,现在我不能再提交它了。这是因为为复选框添加了一个数据值必需字段吗?如果有,我该如何解决?
这是代码:
复选框输出:
<input name="[0].Id" type="hidden" value="en" />
<input name="[0].Name" type="hidden" value="English" />
<div>
<input data-val="true" data-val-required="The IsChecked field is required." name="[0].IsChecked" type="checkbox" value="true" />
<input name="[0].IsChecked" type="hidden" value="false" />
<label for="">English</label>
</div>
ViewModel:
public class CheckBoxViewModel
{
public string Id { get; set; }
public string Name { get; set; }
public bool IsChecked { get; set; }
}
部分观点:@model IEnumerable<CheckBoxViewModel>
@using (Html.BeginForm())
{
@Html.EditorForModel()
}
编辑模板:
@model CloudJunction.Web.MVC4.CloudJunction.Modules.CheckBoxViewModel
@Html.HiddenFor(x => x.Id)
@Html.HiddenFor(x => x.Name)
<div>
@Html.CheckBoxFor(x => x.IsChecked)
@Html.LabelFor(x => x.IsChecked, Model.Name)
</div>
主要观点:
@using (Html.BeginForm())
{
// lots of other form items
@Html.Partial("CheckboxList", Model.LanguageCheckboxes)
<input type="submit" value="Submit" />
}
我确实注意到它创建了一个额外的表单标签,这可能会导致问题,或者它只是被忽略了?
可能在分部视图中存在一些绑定或构建错误。所以当它运行时,会有异常,并且提交按钮没有呈现。
请检查输出窗口。
清理和重建代码,并检查部分视图,是否有错误?
如果没有错误,那么嵌套表单将对问题负责