0

私は最近 MVC4 を使い始めましたが、現在は部分ビューに取り組んでいます。

現在、次のようなコントローラーがあります。

public class BlogController : Controller
{
    [ChildActionOnly]
    public ActionResult MostRecent()
    {
        ...
    }
}

そして、次の行を使用して、ビューのいずれかからそれを呼び出します。

 @{ Html.RenderAction("MostRecent", "Blog"); }

次のようなことは可能ですか?

public static class PartialHelper
{
    public static string RenderMostRecent()
    {
        return notsurewhat.RenderAction("MostPopular", "Blog");
    }
}

私のコードでは、呼び出す必要があるのは次のとおりです。

@PartialHelper.RenderMostRecent()

そうすれば、いつでもコントローラー/アクションを変更でき、その部分ビューを呼び出すすべての場所を更新する必要はありません。

これを行うためのはるかに簡単な方法があれば、アイデアをお待ちしています!

ありがとう

4

1 に答える 1

1

HtmlHelperクラスへの拡張メソッドとしてそれを書くことができます:

using Sysem.Web.Mvc;
using Sysem.Web.Mvc.Html;

public static class PartialHelper
{
    public static void RenderMostRecent(this HtmlHelper html)
    {
        html.RenderAction("MostPopular", "Blog");
    }
}

PartialHelper次に、ビューでカスタムヘルパーを使用します(静的クラスが定義されている名前空間をビューのスコープに持ち込んだ後):

@{Html.RenderMostRecent();}

Actionの代わりにメソッドを使用することもできますRenderAction

public static class PartialHelper
{
    public static IHtmlString RenderMostRecent(this HtmlHelper html)
    {
        return html.Action("MostPopular", "Blog");
    }
}

これにより、ビューで次のように呼び出すことができます。

@Html.RenderMostRecent()
于 2013-08-21T16:12:50.087 に答える