Asp.net mvc 4 如何设计MVC4项目以满足Url重写和不同平台/浏览器的需要

Asp.net mvc 4 如何设计MVC4项目以满足Url重写和不同平台/浏览器的需要,asp.net-mvc-4,mobile,url-rewriting,Asp.net Mvc 4,Mobile,Url Rewriting,我希望创建一个MVC4项目,该项目需要能够支持URL重写,并能够根据设备(如台式PC、手机或平板电脑)返回和呈现不同的视图 比如, URL重写 基本上,对于每个视图,而不是产品(通过ID来显示数据),我希望URL的内容类似于www.mydomain.com/my-Product-name/,而不是www.mydomain.com/ProductView/?ID=12345 响应性移动设计 因此,当访问www.mydomain.com/my-product-name/页面时,如果是客户端请求,我希

我希望创建一个MVC4项目,该项目需要能够支持URL重写,并能够根据设备(如台式PC、手机或平板电脑)返回和呈现不同的视图

比如,

URL重写

基本上,对于每个视图,而不是产品(通过ID来显示数据),我希望URL的内容类似于www.mydomain.com/my-Product-name/,而不是www.mydomain.com/ProductView/?ID=12345

响应性移动设计

因此,当访问www.mydomain.com/my-product-name/页面时,如果是客户端请求,我希望返回的视图是设计用于在桌面浏览器上运行的视图。或者,如果是在移动电话上,则会显示基本视图


有人能提供一些示例或有用的文档供参考吗?

显然,您对MVC4的阅读并不多,因为您提到的内容是MVC4的关键特性

首先,MVC4不需要URL重写。它使用友好的url的开箱即用,就像你想要的,无需重写

其次,MVC4使用移动模板,允许您为不同的移动设备定义不同的视图,它将根据查看视图的设备自动选择正确的视图

我建议你读一下:


1。对于友好URL:

无需重新编写Url,一条
路线就足够了:

routes.MapRoute(
    "ProductPage", // Route Name
    "{product*}", // Url Pattern
    new { controller = "Products", action = "Info", product = UrlParameter.Optional},
);

2。对于每个设备的自定义视图:

MVC 4引入了
显示模式提供程序
,允许您根据选择从HTTP请求中提取的任何条件确定要使用的视图文件,例如:

DisplayModeProvider.Instance.Modes.Add(new DefaultDisplayMode("iPad")
    {
    ContextCondition = (context => context.Request.UserAgent.Contains("ipad"))
    });

请参见

正确,我对MVC非常陌生