2012-03-06 4 views
0

私のアプリにはオン/オフできるモジュールがあり、これらのモジュールはHtml.Partial呼び出しによるビューに貢献しています。ページがコントローラにポストバックすると、コントローラに備わっているTryUpdateModelのようなものを使ってモジュールが個々のモデルを処理したいと思っています。 TryUpdateModelが保護されたメソッドであり、コントローラの外部からアクセスできないという問題があります。MVC3のコントローラの外からアップデートする方法

コントローラーの外部のクラスからController.TryUpdateModelのようなことをどうすればできますか?

+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> 
+0

クライアントから更新するために部分ビューは必要ありません。ページ全体がコントローラにポストされています。そこからコントローラは、個々のモジュールがそれぞれのモデルを更新するようにする必要があります。私が思いつくことができるもっとも近いことは、Controllerクラスを拡張し、TryUpdateModelメソッドをpublicとして公開し、コントローラへの参照を個々のモジュールに渡すことです。 –

+0

@ Html.RenderAction()を使用できますか? –

関連する問題