2
我一直在閱讀Steven Sanderson關於移動web開發http://www.asp.net/learn/whitepapers/add-mobile-pages-to-your-aspnet-web-forms-mvc-application的這個鏈接,我試圖在aspx中執行他的剃鬚刀代碼。從URL在asp.net mvc中,如何從視圖切換主頁面?
剃刀代碼:
@{
Layout = Request.Browser.IsMobileDevice ? "~/Views/Shared/_LayoutMobile.cshtml"
: "~/Views/Shared/_Layout.cshtml";
}
我的aspx適應:
<%@ Page Title="" Language="C#" MasterPageFile=Request.Browser.IsMobileDevice ? "~/Views/Shared/mobile.Master" : "~/Views/Shared/site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
,但是這給了我這個錯誤:
ASP.NET runtime error: Only Content controls are allowed directly in a content page that contains Content controls.
有沒有辦法在ASPX做到這一點?
不知道從哪裏得到的,從未提及過剃刀。不是說它會有幫助,你需要在渲染過程開始之前設置masterpage,而不是在它之前。 –
如果你按照鏈接,它顯示史蒂夫桑德森正在做我所描述的使用剃刀引擎...我不知道你可以設置控制器中的masterpage。感謝新的信息,我就是這樣做的! :-) – quakkels
我必須投票。在控制器中交換主控器是非常糟糕的。您建議讓每個操作方法都有「this.IsMobile?」,「Mobile」:「Regular」或類似的行。更好的地方是自定義視圖引擎,或者像Layout文章中所說的定義這種行爲的Layout.cshml而不是遍佈整個地方 – jfar