ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ASP.NET MVC最佳实践(1)

ASP.NET MVC最佳实践(1)

原创 Linux操作系统 作者:geez 时间:2009-04-10 14:04:11 0 删除 编辑

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. Dashboard  
2. Profile  
而不是这样:
1. <%= Html.ActionLink("Dashboard", "Dashboard", "Story") %>  
2. ">Profile  

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

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/740297/viewspace-586997/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-02-03

  • 博文量
    21
  • 访问量
    65578