您应该可以使用 MVC4 来做到这一点(我不知道 MVC3 中是否存在此功能,但下面网站上的示例使用 MVC4,所以这就是我的回复所依据的)。
可切换的移动视图
看来您可以开始制作名为 [ActionName].Mobile.cshtml 的文件,并且 ASP.NET 在检测到来自移动设备的请求时会自动使用这些文件(这似乎是可自定义的,因此您可以为平板电脑或其他设备创建自己的)。他演示了类似于您在 Razor 中询问的内容 - 他根据当前显示模式呈现不同的链接,但我认为这也适用于呈现不同的局部视图:
@if (Request.Browser.IsMobileDevice && Request.HttpMethod == "GET")
{
<div class="view-switcher ui-bar-a">
@if (ViewContext.HttpContext.GetOverriddenBrowser().IsMobileDevice)
{
@: Displaying mobile view
@Html.ActionLink("Desktop view", "SwitchView", "ViewSwitcher", new { mobile = false, returnUrl = Request.Url.PathAndQuery }, new { rel = "external" })
}
else
{
@: Displaying desktop view
@Html.ActionLink("Mobile view", "SwitchView", "ViewSwitcher", new { mobile = true, returnUrl = Request.Url.PathAndQuery }, new { rel = "external" })
}
</div>
}
尽管如果您有单独的移动视图和桌面视图,那么我认为您不需要像您询问的那样在两个部分之间手动切换。
相关信息