使用asp.net mvc再造一个digg 第一部分
(int? page) 12. { 13. } 14. 15. //List Stories for a specific tag 16. [ControllerAction] 17. public void Tag(string name, int? page) 18. { 19. } 20. 21. //List Stories Posted by a Specific User 22. [ControllerAction] 23. public void PostedBy(string name, int? page) 24. { 25. } 26. 27. //Search the Stories 28. [ControllerAction] 29. public void Search(string q, int? page) 30. { 31. } 32. 33. //View the details of a specific story 34. [ControllerAction] 35. public void Detail(int id) 36. { 37. } 38. 39. //Submit a Story 40. [ControllerAction] 41. public void Submit (string storyUrl, string storyTitle, int storyCategoryId, 42. string storyDescription, string storyTags) 43. { 44. } 45. 46. //Kigg the Story 47. [ControllerAction] 48. public void Kigg(int storyId) 49. { 50. } 51. 52. //Post a Comment 53. [ControllerAction] 54. public void Comment(int storyId, string commentContent) 55. { 56. } 57. } 下面这些代码片段则展示了UserController里所以的行为方法:
注意所以的行为方法都定义为public并且使用了ControllerAction 属 性。在下一个版本的ASP.NET MVC中这个属性就不再需要了,所有定义为公共的方法将自动成为一个行为方法。 定义筛选规则 一旦Controllers的参数签名确定就应该立刻开始声明把URLs映射到Controllers的行为方法的筛选规则。前面我提到过,这些映射规则在 web.config文件中的application start事件中定义。定义筛选规则的时候你要注意,把最特殊的规则放在最上面。这个就跟try/catch块中定 义错误处理规则一样,要遵循从特殊到一般的原则。如果你打开Global.asax 文件查看,你会发现我们明确的定义了两个方法来定义这些规则 ,并且在application start事件中调用方法。这么做是因为我们不想把不同版本iis中使用的规则弄乱。在iis7中有一个很cool的特性,所有 的URLs都不需要扩展名,但是在老版本的iis中URLs都需要一个.mvc的扩展名。所以,为了同事支持这个两个版本的iis,我们就要把同一个URL 定义两遍,为新的iis定义一套没扩展名的,为旧的iis定义一套有扩展名的。在这里,我们在web.confitg文件里设置当前程序是跑在什么版本 的iis中,然后只把当前版本iis用的那套筛选规则读出来。这样做还有一个好处,那就是我们一会要讲的单元测试。下面这些代码展现了筛选 规则是如何实现的:
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |