【问题标题】:ASP.Net MVC 3: Multiple views/urls to one controller actionASP.Net MVC 3:一个控制器动作的多个视图/url
【发布时间】:2011-04-24 06:49:10
【问题描述】:

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

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

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

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

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

return View();

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

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

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

如果这不可能,我将不得不坚持使用网络表单,我真的不想这样做:-(

【问题讨论】:

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


    【解决方案1】:

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

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

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

    "/Static/{viewName}"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 2010-11-25
      • 1970-01-01
      • 2017-02-23
      相关资源
      最近更新 更多