我在部分视图中有一个 Ajax.BeginForm(),其中包含一个布尔值的 CheckBox。模型如下;
public class ViewBusinessAdd
{
[Required(ErrorMessage="Name must be supplied")]
[Display(Name = "Business Name")]
public string Name { get; set; }
[Required(ErrorMessage = "Contact must be supplied")]
[Display(Name = "Business Contact")]
public string Contact { get; set; }
[Display(Name = "Phone Number")]
public string Number { get; set; }
public string Postcode { get; set; }
public Dictionary<string, string> States { get; set; }
public string AddressRegion { get; set; }
public bool IsFacebookPost { get; set; }
public List<RecommendationViewAttribute> Attributes { get; set; }
}
CheckBox 使用 Html 助手呈现;
<div class="control-group">
<label class="control-label">
@Html.LabelFor(m => m.IsFacebookPost, "Post recommendation")
<img src="~/Content/images/f_logo.png" alt="Facebook" />
</label>
<div class="controls">
@Html.CheckBoxFor(m => m.IsFacebookPost)
</div>
</div>
这会在渲染时生成以下 HTML;
<input data-val="true" data-val-required="The IsFacebookPost field is required." id="IsFacebookPost" name="IsFacebookPost" type="checkbox" value="true" /><input name="IsFacebookPost" type="hidden" value="false" />
提交表单时,它会在 Chrome 中产生此错误;
Uncaught SyntaxError: Unexpected token u
如果我删除 CheckBox 表单提交没有任何错误。如果我将其转换为非 Ajax 表单,它也会提交,但不幸的是,这不适用于页面设计。
我对此感到非常困惑-我什至将其更改为 RadioButton 并且存在相同的行为。有没有人有任何想法?
编辑:忘记添加它是一个 Javascript 错误。
编辑:错误来自下面返回的 jQuery 库;
parseJSON: function( data ) { // 尝试先使用原生 JSON 解析器进行解析
if ( window.JSON && window.JSON.parse ) { return window.JSON.parse( data ); }
但这只有在我使用 Razor HTML 帮助程序生成复选框时才会发生。