【问题标题】:ASP.Net MVC url design & structure guidelinesASP.Net MVC url 设计和结构指南
【发布时间】:2012-01-17 10:10:42
【问题描述】:

我想就为我们的网络应用程序设计网址获得一些专家建议。这不是一个公共领域的网站,它是一个基于供应链内部网的 web 应用程序,仅供一组经过身份验证的用户使用。

这里有一些例子-

/Claim/12/Manage
FORMAT: controller/{ID}/action

指向“Claim Entry”向导的 url。这里的“12”是 ClaimID。它进一步分为用于子数据输入的选项卡。 示例:/Claim/12/Print、/Claim/12/FileDetails、...

/Users/List
FORMAT: controller/action

在 Grid 中显示现有用户的列表。将其缩短为“/Users”?同样,我们还有一些其他实体,例如“角色、组织等……”

/Master/Manage/FileType
FORMAT: controller/action/{argument}

我们有一个页面,允许用户管理不同的主表数据。需要知道选择了哪个主表(即作为参数发送)。将其简化为“/Manage/{argument}”是否更好,然后按照上面的要求映射该 url?

  • 在 MVC 中隐藏默认操作(如“Claim/21/Manage”应为“Claim/21”、“/Users/List”应为“/Users”...
  • 参数 - 它们是嵌入在 url 中更好还是作为查询字符串附加更好

任何通用指南或参考资料也很好。

参考:Web 服务 url -(部分:设计 URI 模板) http://msdn.microsoft.com/en-us/library/dd203052.aspx

【问题讨论】:

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


    【解决方案1】:

    您可以使用正则表达式来表示您拥有的各种路线。例如

    protected void Application_Start()
    {
    RouteTable
    .Routes
    .MapRoute(
    "Default", // Route name
    "{controller}/{action}/{id}", // URL template
    new { controller="Mycontroller", action="Myaction", id=UrlParameter.Optional },
    new { action = @"\d{2}-\d{2}-\d{4}" }
    );
    }
    

    【讨论】:

      【解决方案2】:

      好吧,我的结论是,这是我在 MSDN 上找到的最好的(也可能是最详细的)解释 - http://msdn.microsoft.com/en-us/library/dd203052.aspx

      这样就足够了:-)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-11-07
        • 1970-01-01
        • 2010-10-19
        • 1970-01-01
        • 2016-11-13
        • 2010-12-07
        • 2010-12-24
        相关资源
        最近更新 更多