Итак, я создаю страницу администратора, на которой хочу разместить несколько форм. Итак, я попытался сделать это с помощью Partial View и RenderAction.
Просмотр индекса моего администратора:
@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");
}
}
Проблема связана с HttpPost-версией AddProduct. Если я сохраню его как return View («Индекс»), он попадет в бесконечный цикл. Но если я возвращаю PartialView (данные), он правильно показывает ошибку, но не имеет представления индекса вокруг нее. Таким образом, он показывает только частичный вид. Есть ли способ разместить несколько форм на одной странице и вернуть на страницу проверку на стороне сервера?