Asp.net mvc 3 ASP.Net MVC 3:一个控制器操作的多个视图/URL

Asp.net mvc 3 ASP.Net MVC 3:一个控制器操作的多个视图/URL,asp.net-mvc-3,url-routing,Asp.net Mvc 3,Url Routing,我正在尝试使用ASP.Net MVC 3执行以下操作: 我有很多“平面页面”,基本上都是html文档,没有附加.net代码 我希望能够通过路由url请求这些页面,但我不希望手动将每个url添加到路由中 所以我的问题是:是否可以定义一个默认路由,它使用相同的控制器/操作,但根据请求的URL返回一个视图 e、 g./home/about和/profile将使用views/home/about.cshtml和/profile.cshtml 但两者都将使用相同的控制器和操作,基本上如下所示: retur

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

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

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

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

e、 g./home/about和/profile将使用views/home/about.cshtml和/profile.cshtml 但两者都将使用相同的控制器和操作,基本上如下所示:

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

我希望他能够添加新页面,只需添加一个cshtml文件(就像他在webforms中创建aspx文件一样,没有代码落后)

这是必要的,因为否则我每次都必须编辑global.asax,每次他添加一个页面,这是非常常见的


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

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

public ActionResult StaticPage(string viewName)
{
    return View(viewName);
}
然后定义路由,使viewName不是参数,而是URL的一部分:

"/Static/{viewName}"

您可以将视图的名称作为参数来执行操作;如下所示:

public ActionResult StaticPage(string viewName)
{
    return View(viewName);
}
然后定义路由,使viewName不是参数,而是URL的一部分:

"/Static/{viewName}"