2013-05-21 71 views
2

我有一個MVC 4查看包含窗體和部分視圖。主視圖包含有關產品的信息,部分視圖包含產品的圖像。MVC 4 - VIews /部分視圖和表單 - 如何更新提交的部分視圖?

我想要做的是讓局部視圖包含它自己的形式,圖像將顯示在上面。如果我將此表單提交給控制器操作方法,請修改其基於的模型,然後讓操作方法刷新部分視圖,只是我的主視圖的部分視圖部分會更改,而不是主視圖本身?如果沒有,是否有更好的方法來做我想做的事情。我只想更新主視圖的局部視圖部分。

+0

可以使用AJAX張貼形式的信息,然後使用jQuery重新加載局部視圖。 – lopezbertoni

回答

7

如果您只想更新部分視圖,您應該使用AJAX調用來檢索數據。這樣你可以調用一個Controller來返回你需要的View(在這個例子中是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

謝謝Zed。而不是我的操作方法返回一個JsonResult,它可以返回一個ActionResult。在這種情況下,我將只返回部分視圖所基於的模型。所有這些我都很新。 – Hosea146

+0

是的,你可以在這個[post]中看到如何做到這一點(http://stackoverflow.com/questions/4730777/mvc-return-partial-view-as-json) –