MVC: Другие частичные просмотры теряются после публикации в частичном просмотре

У меня есть частичное представление, где я делаю отправку:

<input type="image" src="~/Resources/Images/DoSomething.png" border="0" alt="Submit" value="DoSomething" name="DoSomething"/>

Функция контроллера:

[HttpPost]
[MultipleButton]
public ActionResult DoSomething(MyModel myModel)
{
    DoSomethingToManipulateTheModel(myModel);

    return PartialView("~/Views/MyPartialView.cshtml", myModel);
}

В функции DoSomething() я хочу манипулировать myModel и отправить его обратно в представление.

Но у меня есть проблема:
После вызова DoSomething отображается только частичное представление без стиля. Как я могу обновить частичное представление, не теряя другие частичные виды и стили?

2 ответа

Вы можете сделать это с $.ajax, добавлять onclick="someJsFunction()" на вашу кнопку и в

someJsFunction(e)
{
e.preventDefault();

//do the ajax hit here to your action method
//and on the success event of ajax append the partial view html to the //corresponding div where you want to show the partial content

//and don't forget to set the datatype:html in ajax parameters

} 

Вы должны использовать приведенный ниже код для возврата результата частичного просмотра

<input type="image" src="~/Resources/Images/DoSomething.png" border="0" id="SubmitBtn" alt="Submit" value="DoSomething" name="DoSomething"/>

Вы должны добавить Div " PartialResultDivName " в вашем представлении и показать возвращаемые данные в этом div. проверьте код ниже для этого.

 $("#SubmitBtn").click(function () {
    $.ajax(
                   {
                       url: '@Url.Action("DoSomething", "ControllerName")',
                       type: "Post",
                       async: false,
                        dataType: "html",
                       contentType: "application/json;charset=utf-8",
                       data: $('form').serialize(), //here you have to pass your form name for pass all data to controller action
                     contentType: "application/json;charset=utf-8",
                       success: function (data) {
                            $('#PartialResultDivName').html(data);
                       }
                   });
 });

Другие вопросы по тегам