我的頁面上有一個包含窗體的窗格。包含表單的ASP.NET MVC3 Html.Action
我也以同樣的方式使用該吊艙如下:
@Html.Action("Pod","Home")
有一些業務規則在處理表單後波德的HttpPost行動檢查。如果此業務規則失敗,則向模型狀態添加錯誤。
問題是,當業務規則無法驗證。我從pod操作返回一個視圖,該視圖僅顯示空白頁上的窗格。
我該如何正確重用這樣的表單,並且仍然有這個業務規則的服務器端驗證(需要db命中來驗證)?
我的頁面上有一個包含窗體的窗格。包含表單的ASP.NET MVC3 Html.Action
我也以同樣的方式使用該吊艙如下:
@Html.Action("Pod","Home")
有一些業務規則在處理表單後波德的HttpPost行動檢查。如果此業務規則失敗,則向模型狀態添加錯誤。
問題是,當業務規則無法驗證。我從pod操作返回一個視圖,該視圖僅顯示空白頁上的窗格。
我該如何正確重用這樣的表單,並且仍然有這個業務規則的服務器端驗證(需要db命中來驗證)?
一種可能性是AJAXify在Pod
部分形式:
<div id="pod">
@Html.Action("Pod","Home")
</div>
和內部Pod.cshtml
:
@using (Html.BeginForm("Pod", "Home", FormMethod.Post, new { id = "podForm" }))
{
...
}
終於AJAXify它:
$(function() {
$('#podForm').submit(function() {
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
success: function(result) {
$('#pod').html(result);
}
});
});
});
的最後一件事,使肯定的是POST操作返回Pod.cshtml作爲parti一目瞭然。兩種可能性:
[HttpPost]
public ActionResult Pod(PodViewModel model)
{
if (!ModelState.IsValid)
{
return PartialView(model);
}
...
}
或Pod.cshtml
部分:
@{
Layout = null;
}
不錯,但您需要添加「返回false」;在ajax調用之後發送到您的javascript代碼。 – 2012-11-23 07:56:05
我們已經到MVC3?我到底在哪裏?哦。等待,在傳統的ASP經典網站上工作。 – 2011-05-06 12:58:17