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);
}
});
});