需要解决的问题
1:创建更为简洁的/Product/Details/1 URL
****
+———————————————————+———————————————————+ | Valid route definitions | | | | | | | Examples of matching URL | +———————————————————+———————————————————+ | {controller}/{action}/{id} | /Products/Details/1 | +———————————————————+———————————————————+ | {controller}/{action}/{id} | /Products/1 | +———————————————————+———————————————————+ | {controller}/{action}/{id}.{Format} | /Products/Show/1.xml | +———————————————————+———————————————————+
“/Products/Details/1”是我们在MVC开发中默认浏览对象Details方法的路由,需要实现的是更为简洁的url表示,如“/Products/1”,返回和“/Products/Details/1“同样的结果。这个处理比较简单,仅仅需要在Global.asax文件中添加一条新的路由规则,不过一定记得是添加在默认路由的前面。
2:创建一个/Product/Show/1.xml的API
要实现xml访问的API,需要先建立一个抽象类来处理返回结果的路由和xml结果的序列化,这里用到了MVC Contrib的类库,可以去MVC Contrib Code Plex下载添加引用。见下图代码的return new XMLResult
代码如下:
最后需要在相应的Action中添加对应的返回类型,这里是Show,见下图
实际效果如下: