2013-05-21 3 views
2

У меня есть MVC 4 View, который содержит форму и частичный вид. Основной вид содержит информацию о продукте, а частичный вид содержит изображения продукта.MVC 4 - VIews/Partial Views and Forms - Как обновить только частичный вид на submit?

Что бы я хотел сделать, так это иметь частичный вид, содержащий его собственную форму, на которой будут отображаться изображения. Если я отправлю эту форму методу действия контроллера, измените модель, на которой она основана, а затем обновите частичный вид метода действий, будет ли отображаться только часть частичного просмотра моего основного вида, а не самого главного представления? Если нет, есть ли лучший способ сделать то, что я пытаюсь сделать. Я просто хочу обновить секцию частичного просмотра основного вида.

+0

Вы можете оставить информацию о форме, используя Ajax и затем использовать JQuery, чтобы перезагрузить частичный вид. – lopezbertoni

ответ

7

Если вы хотите обновить только частичный вид, вы должны получить данные, используя вызов AJAX. Таким образом вы вызываете контроллер, который вернет вам представление (в данном случае Partial View), которое вам нужно. Пример:

CSHTML:

<div id="myPartialViewDiv"> 
    @{Html.RenderPartial("myPartialView", Model);} 
</div> 

JS:

searchAdmin = function() { 

    var URL = "myController/myAction"; 

    $.get(URL, { "optionalArg": optionalArg }, function (data) { 
     $("#myPartialViewDiv").html(data); 
    }) 
} 

myController:

public JsonResult myAction(string optionalArg) 
{ 
    // do something... 

    return this.Json(whatIwantToReturn.ToList(), JsonRequestBehavior.AllowGet); 
} 
+0

Спасибо, Зед. Вместо моего метода действий, возвращающего JsonResult, он может возвратить ActionResult. В этом случае я бы просто вернул модель, на которой основан частичный вид. Я все еще довольно новичок. – Hosea146

+0

Да, вы можете увидеть, как это сделать в этой статье [http://stackoverflow.com/questions/4730777/mvc-return-partial-view-as-json) –