У меня есть индексный просмотр, в котором есть список продуктов в частичном просмотре с кнопками «Изменить» и «Удалить». Редактировать вызов кнопки 2-го уровня Редактировать частичное представление. Есть кнопка для запуска обновления, но она все равно работает как Http post ActionResult, даже как void и с атрибутом [NonAction]. Вероятно, это связано с тем, что частичное представление редактирования загружается как действие «Получить действие», и поэтому любая кнопка в нем, которая отправляет обновления в базу данных, работает как действие публикации. И теперь нет возможности вернуть этот метод обновления, кроме index или edit.cs html!
ProductController:Controller ...
//Get Edit
public PartialViewResult Edit(int id)
{
var product = productRepo.GetProduct(id);
return PartialView("_Edit", product);
}
[NonAction] //Public or private all return "_Edit" partialview
void Edit(Product product)
{ //ActionResult Edit(Product product)
try
{
productRepo.UpdateProduct(product);
//return new EmptyResult();
//return PartialView();
}
catch
{
//return PartialView("_Edit");
}
}
_Edit partial view:
<script>
$(document).ready(function () {
$("#updateProduct").click(function () {
$("#updateProduct").parent().parent().parent()
.find("#allProducts").load('/Shared/_ShowAll');
// .load('@Url.Content("/Shared/_ShowAll")')
});
});
// При нажатии кнопки обновления он должен загрузить новую версию allProducts DIV с частичным представлением _ShowAll после обновления (или удаления) продукта
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Product</legend>
@Html.HiddenFor(model => model.Id)...
........
<p>
<input id="updateProduct" type="submit" value="Update" />
</p>
Что я могу сделать, чтобы запустить productRepo.UpdateProduct(product);
как бездействующий метод без загрузки частичного просмотра как полной страницы mainview? А затем вызовите Jquery .load('/Shared/_ShowAll')
в представлении верхнего уровня, что должно быть возможно. Единственное вряд ли полурешение - это redirectToAction("Index")
, но оно перезагружает mainview, и все частичные представления свернуты. Затем мне нужно дополнительно открыть частичный просмотр ListofProduct. Какие еще варианты подходят для моего подхода CRUD SPA с PartialViews в ASP. NET MVC?