Могу ли я обновить sh родительский частичный вид внутри основного вида из дочернего частичного просмотра, используя Jquery? - PullRequest
0 голосов
/ 28 мая 2020

У меня есть индексный просмотр, в котором есть список продуктов в частичном просмотре с кнопками «Изменить» и «Удалить». Редактировать вызов кнопки 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...