有這麼多的錯誤的東西怎麼回事,我真的不知道從哪裏開始。
你Html.BeginForm
定義是錯誤的:你與htmlAttributes
混淆routeValues
。請參閱下面的解決方案
您的按鈕沒有一個ID,這樣你的JavaScript選擇最有可能失敗
,因爲一個簡單的<input type="submit">
按鈕不開箱的所有這些努力都是沒有必要的。
現在讓我們假設你是JavaScript的粉絲,你想寫它(我不知道你爲什麼要寫代碼,但無論如何)。因此,通過固定的形式定義開始:
@using(Html.BeginForm("someAction", "someController", FormMethod.Post, new { id = "FormTest" }))
{
@Html.ValidationSummary()
@Html.TextBoxFor(x => x.Foo)
<input type="button" value="Save" id="Save" />
}
,然後你可以這樣做:
$('#Save').click(function() {
var form = $('#FormTest');
if (form.valid()) {
form.submit();
}
});
很明顯,你必須確保客戶端腳本已經適當地包括在頁面上:
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
當然,我建議你的真正解決方案是使用提交按鈕來提交表單:
@using(Html.BeginForm("someAction", "someController", FormMethod.Post, new { id = "FormTest" }))
{
@Html.ValidationSummary()
@Html.TextBoxFor(x => x.Foo)
<input type="submit" value="Save" id="Save" />
}
現在你不需要任何javascript(顯然你仍然需要兩個腳本包含進行不顯眼的驗證)。
是的,它支持驗證。 – 2011-03-03 10:45:20
我該如何顯示錯誤信息? – learning 2011-03-03 11:27:52
啓用客戶端驗證? – 2011-03-03 11:43:37