我有一個Ajax.BeginForm()在部分視圖中包含一個複選框的布爾值。模型如下;Ajax.BeginForm()與複選框語法錯誤
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) { // Attempt to parse using the native JSON parser first
if (window.JSON && window.JSON.parse) { return window.JSON.parse(data); }
但是,這隻會發生,如果我使用剃刀HTML助手來產生複選框。
..this是一個JavaScript錯誤? – 2013-02-18 01:32:47
另外,我忍不住注意到你正在一個標籤內渲染一個標籤.. – 2013-02-18 01:39:12
對不起 - 是的,這是一個JavaScript錯誤。剛注意到這個標籤!將修復它。 – davidredmond 2013-02-18 01:45:54