视图引擎中的自定义标记?

时间:2010-06-22 13:22:46

标签: asp.net-mvc viewengine token

在ASP.NET MVC 2项目中,我如何编写自定义视图引擎,允许在搜索视图时使用自定义标记?

具体来说,我正在努力实现这一目标:

在PagesController中:

public ActionResult ViewPage(string folder, string page)
{
  return View(folder, page);
}

我希望视图引擎在目录中搜索视图:/ Views / Pages / [folder] /

如果不提前知道文件夹名称,我怎样才能实现这一目标?理想情况下,此自定义视图引擎仅用于此单个控制器。

2 个答案:

答案 0 :(得分:0)

您无需实现自己的viewengine来解决此问题。您只需提供所需视图的路径即可。像这样:

return View("~/Views/Pages/FolderName/ViewName.aspx");

你的例子看起来像这样:

public ActionResult ViewPage(string folder, string page) {
    return View(string.Format("~/Views/Pages/{0}/{1}.aspx", folder, page));
}

答案 1 :(得分:0)

如果这些值按请求更改(......看起来像那样),那么您需要覆盖CreateView。我自己没有这样做,但是在SO的一个问题中有人说它可能:

Localization with separate Language folders within Views