我最近开始玩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()
这样我就可以在任何时候改变控制器/动作,而且我不必更新那些调用部分视图的地方。
如果有更简单的方法可以提供想法!
由于
答案 0 :(得分: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()