我的應用程序具有可以打開和關閉的模塊,這些模塊通過Html.Partial調用爲視圖做出貢獻。當頁面發回控制器時,我希望模塊使用控制器所具有的類似TryUpdateModel的模塊來處理它們各自的模型。問題是TryUpdateModel是受保護的方法,不能從控制器外部訪問。如何在MVC3中從控制器外部嘗試更新模型
我該如何從控制器之外的類中進行類似Controller.TryUpdateModel的操作?
我的應用程序具有可以打開和關閉的模塊,這些模塊通過Html.Partial調用爲視圖做出貢獻。當頁面發回控制器時,我希望模塊使用控制器所具有的類似TryUpdateModel的模塊來處理它們各自的模型。問題是TryUpdateModel是受保護的方法,不能從控制器外部訪問。如何在MVC3中從控制器外部嘗試更新模型
我該如何從控制器之外的類中進行類似Controller.TryUpdateModel的操作?
如果我正在閱讀此權限,這聽起來像您想要部分視圖來更新自己。
我已經做了一些類似的一些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>
我不需要部分視圖來從客戶端更新自己。整個頁面發佈到控制器。從那裏控制器需要各個模塊更新其各自的模型。我能夠提出的最接近的事情是擴展Controller類並公開TryUpdateModel方法,然後將對控制器的引用傳遞給各個模塊 – 2012-03-06 18:54:53
您可以使用@Html.RenderAction() – 2012-03-06 18:59:51
請您發表您的操作方法的代碼?你訪問部分視圖的方式可以查看嗎?這將有助於大的時間。 – 2012-03-06 19:24:42