3
所以我有一個按鈕在打開模式彈出窗體的視圖。這種模式彈出窗體是部分頁面。我的問題是:MVC:用於jQuery模式彈出窗口的部分視圖,驗證問題
每當我沒有填寫窗體上的必填字段,TryUpdate檢查將顯然失敗,但它只會刷新行「window.location.reload的整個頁面cuz 「在jQuery上。我想要做的是不是刷新,而是保持原樣(模式顯示頁面),驗證摘要或驗證將顯示說明,這是必需的。這是可能的還是我與它複雜的東西?
<script type="text/javascript">
$(document).ready(function() {
$(function() {
$('#modal-link').click(function() {
var href = this.href;
$('#load-modal').dialog({
modal: true,
draggable: false,
position: "top",
open: function (event, ui) {
$(this).load(href, function (result) {
$('#new-academy-form').submit(function() {
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
success: function (json) {
window.location.reload(true);
},
error: function (data) {
var errmessage = '<div class="error-repo">Error</div>';
$('#messages').html(errmessage);
}
});
return false;
});
});
}
});
return false;
});
});
});
</script>
這是按鈕:
<div class="width3">
<%: Html.ActionLink("Submit New", "Create", "Propose", null, new { @class = "results", id = "modal-link" })%>
</div>
這是操作:
public ActionResult Create()
{
return PartialView(Propose.LoadDetails(context, null));
}
[HttpPost]
public ActionResult Create(FormCollection formCollection)
{
Propose propose= new Propose();
if(TryUpdateModel(propose, "Propose ")){
context.Propoe.Add(propose);
context.SaveChanges();
var proposals = new System.Text.StringBuilder();
return Json(new { propose= proposals});
}
return PartialView(Propose.LoadDetails(context, null));
}
你可以從你的行動,讓你決定你是否應該* *重新加載整個頁面或不返回一個狀態碼。如果存在實際錯誤,則只會觸發jQuery AJAX錯誤回調。或者,您可以返回指示錯誤的HTTP狀態代碼,如下所示:http://stackoverflow.com/q/4707755/453277 –
因此您真的不能使用通常的助手了嗎?在該部分頁面上? –
gdubs