ASP.NET MVC最佳实践(1)
2009-12-08 16:55
239 查看
1.创建UrlHelper类的扩展方法,生成相对路径URL
请避免将控制器、行为、或者路由名称作为字符串到处传递,创建UrlHelper的扩展方法来封装它们,例如:UrlHelper类的扩展方法
public static class UrlHelperExtension { public static string Home(this UrlHelper helper) { return helper.Content("~/"); } public static string SignUp(this UrlHelper helper) { return helper.RouteUrl("Signup"); } public static string Dashboard(this UrlHelper helper) { return Dashboard(helper, StoryListTab.Unread); } public static string Dashboard(this UrlHelper helper, StoryListTab tab) { return Dashboard(helper, tab, OrderBy.CreatedAtDescending, 1); } public static string Dashboard(this UrlHelper helper, StoryListTab tab, OrderBy orderBy, int page) { return helper.RouteUrl("Dashboard", new { tab = tab.ToString(), rderBy = orderBy.ToString(), page }); } public static string Update(this UrlHelper helper) { return helper.RouteUrl("Update"); } public static string Submit(this UrlHelper helper) { return helper.RouteUrl("Submit"); } }
这样的话,您就可以在视图中这样来使用:
<a href="<%= Url.Dashboard() %>">Dashboard</a> <a href="<%= Url.Profile() %>">Profile</a>
而不是这样:
<%= Html.ActionLin ("Dashboard", "Dashboard", "Story") %> <a href="<%= Url.RouteUrl("Profile")%>">Profile</a>
并且在控制器中我能这么用:
return Redirect ( Url.Dashboard ( StoryListTab.Favorite, OrderBy.CreatedAtAscending, 1 ) );
而不是这样:
return RedirectToAction ( "Dashboard", "Story", new { tab = StoryListTab.Favorite, rderBy = OrderBy.CreatedAtAscending, page = 1 } );
相关文章推荐
- ASP.NET MVC 最佳开发实践(1)
- 艾伟_转载:【译】12个asp.net MVC最佳实践
- ASP.NET MVC最佳实践(2)
- (转)ASP.NET MVC最佳实践(1)
- 探寻ASP.NET MVC鲜为人知的奥秘(3):寻找多语言的最佳实践方式
- ASP.NET MVC的最佳实践与性能优化的文章
- Asp.net MVC 权限过滤器实现方法的最佳实践
- <译>12个asp.net MVC最佳实践
- (转)ASP.NET MVC最佳实践(2)
- 【翻译】7个ASP.NET MVC最佳实践
- 【转】ASP.NET MVC 的最佳实践
- (转)ASP.NET MVC最佳实践(3)
- ASP.NET MVC单元测试最佳实践
- 《Pro ASP.NET MVC 3 Framework》学习笔记之二十一【Area及URL架构的最佳实践】
- [转]ASP.NET MVC 4 最佳实践宝典
- ASP.NET MVC 4 最佳实践宝典
- ASP.NET MVC防范CSRF最佳实践
- ASP.NET MVC单元测试最佳实践
- <译>12个asp.net MVC最佳实践
- NHibernate3.2+Asp.net MVC3+Extjs 4.0.2项目实践(三):Services中间业务层