• (转)ASP.NET MVC最佳实践(1)


    原文地址:http://space.itpub.net/740297/viewspace-586997

    1.创建UrlHelper类的扩展方法,生成相对路径URL

    请避免将控制器、行为、或者路由名称作为字符串到处传递,创建UrlHelper的扩展方法来封装它们,例如:
    1. public static class UrlHelperExtension  
    2. {  
    3.    public static string Home(this UrlHelper helper)  
    4.    {  
    5.        return helper.Content("~/");  
    6.    }  
    7.  
    8.    public static string SignUp(this UrlHelper helper)  
    9.    {  
    10.        return helper.RouteUrl("Signup");  
    11.    }  
    12.  
    13.    public static string Dashboard(this UrlHelper helper)  
    14.    {  
    15.        return Dashboard(helper, StoryListTab.Unread);  
    16.    }  
    17.  
    18.    public static string Dashboard(this UrlHelper helper, StoryListTab tab)  
    19.    {  
    20.        return Dashboard(helper, tab, OrderBy.CreatedAtDescending, 1);  
    21.    }  
    22.  
    23.    public static string Dashboard(this UrlHelper helper, StoryListTab tab, OrderBy orderBy, int page)  
    24.    {  
    25.        return helper.RouteUrl("Dashboard", new { tab = tab.ToString(), rderBy = orderBy.ToString(), page });  
    26.    }  
    27.  
    28.    public static string Update(this UrlHelper helper)  
    29.    {  
    30.        return helper.RouteUrl("Update");  
    31.    }  
    32.  
    33.    public static string Submit(this UrlHelper helper)  
    34.    {  
    35.        return helper.RouteUrl("Submit");  
    36.    }  
    37. }  

    这样的话,您就可以在视图中这样来使用:
    1. <a href="<%= Url.Dashboard() %>">Dashboard</a>  
    2. <a href="<%= Url.Profile() %>">Profile</a>  
    而不是这样:
    1. <%= Html.ActionLink("Dashboard", "Dashboard", "Story") %>  
    2. <a href="<%= Url.RouteUrl("Profile")%>">Profile</a>  

    并且在控制器中我能这么用:
    1. return Redirect(Url.Dashboard(StoryListTab.Favorite, OrderBy.CreatedAtAscending, 1))  
    而不是这样:
    1. return RedirectToAction("Dashboard", "Story", new { tab = StoryListTab.Favorite, rderBy = OrderBy.CreatedAtAscending, page = 1 }); 


     

  • 相关阅读:
    高程5.4 RegExp类型
    高程5.3 Date类型
    高程5.2.9归并方法
    20151119js上课总结
    从0~100之间随机取出不重复的10个数
    高程5.2.8迭代方法
    HTML常用标签
    20151118小问题
    20151117小问题
    《QT Creator快速入门》
  • 原文地址:https://www.cnblogs.com/fcsh820/p/1867089.html
Copyright © 2020-2023  润新知