ASP.Net MVC 3:一个控制器动作的多个视图/ URL

时间:2011-04-24 06:49:10

标签: asp.net-mvc-3 url-routing

我正在尝试使用ASP.Net MVC 3执行以下操作:

我有很多“平面页面”,基本上是没有附加dot.net代码的html文档。

我希望能够通过路由网址请求这些网页,但我不想手动将每个网址添加到路由中。

所以我的问题是:是否可以定义一个默认路由,它使用相同的控制器/操作,但是根据请求的URL返回一个视图?

e.g。 / home / about和/ profile将使用视图/home/about.cshtml和/profile.cshtml 但两者都会使用相同的控制器和动作,这几乎就是:

return View();

原因:我正在做网站的所有页面,这需要dot.net代码。然而,另一个人正在做所有的“平面页面”(信息页等)。

我希望他能够通过添加一个cshtml文件来添加新页面(就像他将使用webforms创建aspx文件一样,没有代码隐藏)

这是必要的,因为我必须在每次添加页面时编辑global.asax,这很常见。

如果这是不可能的,我将不得不坚持使用webforms,我真的不想这样做: - (

1 个答案:

答案 0 :(得分:4)

您可以执行一个操作,将视图名称作为参数;像这样:

public ActionResult StaticPage(string viewName)
{
    return View(viewName);
}

然后定义路由,使viewName不是参数,而是URL的一部分:

"/Static/{viewName}"