我試圖在通過$ .get呈現的部分視圖中使用MVC2客戶端驗證。但是,客戶端驗證不起作用。我不太清楚交易是什麼。當從ajax調用獲取表單時,MVC2客戶端驗證不起作用
[Required(ErrorMessage = "Email is required")]
public string Email { get; set; }
<% using (Ajax.BeginForm(new AjaxOptions { Confirm = "You sure?" })) { %>
<%: Html.TextBoxFor(m => m.Email, new { @class = "TextBox150" })%>
<%= Html.ValidationMessageFor(m => m.Email)%>
<input type="submit" value="Add/Save" style="float: right;" />
<% } %>
我沒有做任何特別的渲染局部視圖。只需將html放入div並在模式彈出窗口中顯示即可。
在附註中,有沒有人知道是否可以在沒有提交按鈕的情況下提交帶有客戶端驗證的表單?
抱歉,我忘了將它包含在代碼片段中。我確實在我的ajax.begin表單上方有以下內容: <%Html.EnableClientValidation(); %> <%Html.ValidationSummary(); %> – devlife 2010-05-23 14:36:04
@devlife - 我剛剛注意到它是通過AJAX提交的。我不知道在通過AJAX提交表單時是否觸發驗證邏輯 - 因爲提交事件被AJAX腳本中止,因此它可以異步執行。您可能需要在OnBegin方法中手動觸發驗證。現在是時候使用JavaScript的調試版本來啓動Firebug,並且看看實際執行的是什麼,我想。 – tvanfosson 2010-05-23 14:55:42
如果你不想插入一個表單到頁面中,只需輸入幾個元素,這是如何工作的? – 2011-01-16 23:29:15