c# - 如何在 MVC4 中使用所有查询字符串和哈希重定向移动设备?

标签 c# asp.net-mvc c#-4.0 mobile asp.net-mvc-4

我注意到在MVC4中,有一个名为Request.Browser.IsMobileDevice的内置方法。如何使用它来检查请求是否是移动设备,然后重定向到/mobile/index 的 Controller 和操作?我想继承 URL 中的所有查询字符串和位置哈希。有内置的方法可以做到这一点吗?

最佳答案

通常,您不希望重定向到移动设备的不同 Controller 和操作,因为移动设备应该只需要同一模型的不同表示(您不希望重复 Controller 逻辑)。如果您使用 .Mobile.cshtml 扩展名创建 View (对于 C# Razor View ),按照惯例,MVC4 会将此 View 用于移动设备。

例如如果您的 Home 文件夹中有此 View

Index.cshtml

将此 View 添加到您的Home文件夹

Index.Mobile.cshtml

MVC4 将在移动设备上呈现 Index.Mobile.cshtml,在非移动设备上呈现 Index.cshtml

也就是说,有时可能需要针对移动设备执行某些操作。例如。如果您想要为移动设备使用不同的 _Layout.cshtml,您可以将以下内容放入 _ViewStart.cshtml 文件

@{
    if(Request.Browser.IsMobileDevice)
    {
        Layout = "~/Views/Shared/_Layout.Mobile.cshtml";
    }
    else
    {
        Layout = "~/Views/Shared/_Layout.cshtml";
    }
}

关于c# - 如何在 MVC4 中使用所有查询字符串和哈希重定向移动设备?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11384226/

相关文章:

c# - 在 ASP MVC 中使用隐式运算符将字符串绑定(bind)到参数

c# - ASP.NET SqlDataSource 筛选器行为

asp.net-mvc - 对ASP.NET MVC4中的一个提交按钮禁用客户端验证

asp.net-mvc - ASP.NET MVC RC 刷新文档的最佳站点

c#-4.0 - 需要知道开关性能 C#

c# - 如何在 C# .NET 中使用后台智能传输服务?

c# - 将 JSON 对象反序列化为 C# 列表

c# - Linq 到 SQL : Dynamic insert during an update to another entity

c# - Automapper 中缺少类型映射配置或不支持的映射错误

c#-4.0 - MongoDb 中的继承 : how to request instances of defined type