所以,我創建了一個管理頁面,我想在其上放置多個表單。所以,我試着用Partial View和RenderAction來做。MVC3 - 4使用部分視圖的多種形式
我聯繫索引視圖:
@model Rad.ViewModels.AdminViewModel
@{
ViewBag.Title = "Admin";
}
<h2>Admin</h2>
<div>
@{ Html.RenderAction("AddProduct"); }
</div>
我的局部視圖:
@model Rad.ViewModels.AdminAddProductViewModel
@using (Html.BeginForm("AddProduct", "Admin"))
{
<h1>@Html.LabelFor(model => model.Name)</h1>
@Html.TextBoxFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
<input type="submit" value="Add"/>
}
我的管理控制器:
public class AdminController : Controller
{
//
// GET: /Admin/
public ActionResult Index()
{
return View();
}
public ActionResult AddProduct()
{
return PartialView();
}
[HttpPost]
public ActionResult AddProduct(AdminAddProductViewModel data)
{
if (ModelState.IsValid)
{
}
return View("Index");
}
}
的問題是與addProduct命令的HttpPost版本。如果我將它保留爲返回視圖(「索引」),它將進入無限循環。但是,如果我返回PartialView(數據),它會正確顯示錯誤,但沒有索引視圖。所以,它只顯示部分視圖。有沒有辦法在一個頁面上有多個表單並將服務器端驗證返回到頁面?
我想做這個服務器端。 – ScubaSteve
它不是服務器端嗎? Ajax-Request發送到您應該在服務器端的控制器,而不是? – Tobias
是的,它會通過服務器進行檢查,但如果關閉JS,則不會進行呼叫。 – ScubaSteve