如何在MVC3中从Controller外部TryUpdateModel

时间:2012-03-06 18:11:20

标签: asp.net-mvc-3

我的应用程序具有可以打开和关闭的模块,这些模块通过Html.Partial调用为视图做出贡献。当页面回发到控制器时,我想让模块使用控制器具有的TryUpdateModel之类的东西来处理它们各自的模型。问题是TryUpdateModel是受保护的方法,无法从控制器外部访问。

如何从控制器外部的类中执行类似Controller.TryUpdateModel的操作?

1 个答案:

答案 0 :(得分: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>