2012-03-06 95 views
0

我的應用程序具有可以打開和關閉的模塊,這些模塊通過Html.Partial調用爲視圖做出貢獻。當頁面發回控制器時,我希望模塊使用控制器所具有的類似TryUpdateModel的模塊來處理它們各自的模型。問題是TryUpdateModel是受保護的方法,不能從控制器外部訪問。如何在MVC3中從控制器外部嘗試更新模型

我該如何從控制器之外的類中進行類似Controller.TryUpdateModel的操作?

+0

請您發表您的操作方法的代碼?你訪問部分視圖的方式可以查看嗎?這將有助於大的時間。 – 2012-03-06 19:24:42

回答

0

如果我正在閱讀此權限,這聽起來像您想要部分視圖來更新自己。

我已經做了一些類似的一些jQuery,通過調用一個動作並返回一個局部視圖內的部分視圖。盜夢空間?

簡單的例子。 - 很簡單

_partialViewStart.cshtml

<div id="partialFillerResult"> 
</div> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     loadPartialViewFiller(); 
    }); 
    function loadLatestTribes() { 
     $("#partialFillerResult").load("@Url.Action("PartialViewFiller", "Home")").fadeIn("slow"); 
     setTimeout(loadPartialViewFiller, 5000); 
    } 
</script> 

HomeController.cs

public ActionResult PartialViewFiller() 
{ 
    var yourModel = new ExpandoObject(); 

    if (yourModel == null) return PartialView("_empty"); 
    return PartialView("_partialViewFiller", yourModel); 
} 

_partialViewFiller.cshtml

@model dynamic 
<div class="objectWrapper"> 
    <p> 
     @Model.Name 
    </p> 
</div> 
+0

我不需要部分視圖來從客戶端更新自己。整個頁面發佈到控制器。從那裏控制器需要各個模塊更新其各自的模型。我能夠提出的最接近的事情是擴展Controller類並公開TryUpdateModel方法,然後將對控制器的引用傳遞給各個模塊 – 2012-03-06 18:54:53

+0

您可以使用@Html.RenderAction() – 2012-03-06 18:59:51

相關問題