【问题标题】:URL different from view name ASP MVC 3URL不同于视图名称ASP MVC 3
【发布时间】:2011-12-23 01:24:45
【问题描述】:

是否可以向视图添加某种元数据以使 URL 与视图名称不同?

例子:

[DisplayName("My-View")]
public ActionResult MyView()
{
   return View();
}

如您所见,我希望网址为 www.mydomain.com/My-View 而不是 www.mydomain.com/MyView

我想这可以通过一些路由或 IIS 重写来排序,但确实应该有一些元功能。

【问题讨论】:

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


    【解决方案1】:
    [ActionName("My-View")]
    public ActionResult MyView()
    {
        return View();
    }
    

    【讨论】:

      【解决方案2】:

      使用ActionName 代替DisplayNameActionNameAttribute

      此属性将允许您以数字开始您的操作或在标识符中包含 .net 不允许的任何字符。通过这种方式,您可以拥有漂亮的 URL,而无需通过其他方法重写。

      示例

      [ActionName("My-View")]
      public ActionResult MyView()
      {
         return View();
      }
      

      【讨论】:

      • 嘿 pjvds,我刚刚尝试过但无法使其工作,当我使用 @Url.Action 调用所述操作时,它抱怨无论我给它什么操作名称它都找不到它(无论是 My-View 还是 MyView,与示例保持一致)
      • @Nieszka 查看这篇关于完整how a method becomes an action 流程的帖子:haacked.com/archive/2008/08/29/…
      猜你喜欢
      • 2010-12-31
      • 1970-01-01
      • 2011-06-30
      • 2010-11-13
      • 2018-05-29
      • 1970-01-01
      • 2011-10-28
      • 1970-01-01
      • 2013-05-10
      相关资源
      最近更新 更多