2
私はこのリンクをモバイルウェブ開発http://www.asp.net/learn/whitepapers/add-mobile-pages-to-your-aspnet-web-forms-mvc-applicationについてSteven Sandersonから読んでいます。私はaspxで彼の剃刀コードを実行しようとしています。asp.net mvcでは、マスターページをビューからどのように切り替えることができますか?
URLからカミソリコード:
@{
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でこれを行う方法はあります?
あなたはそれがどこから得られたか分かりませんが、かみそりは言及しませんでした。それが助けになるとは限りません。レンダリングプロセスが始まる前に、マスターページを設定する必要があります。 –
リンクをたどると、私は剃刀のエンジンを使用して説明していることをSteve Sandersonに示しています。コントローラーのマスターページを設定できるかどうかはわかりませんでした。新しい情報をありがとう、これは私がこれを達成する方法です! :-) – quakkels
私はこれを投票しなければなりません。コントローラーでマスターを交換することは絶対に恐ろしいことです。すべてのアクションメソッドに "this.IsMobile?" Mobile ":" Regular "というような行があることを提案しています。カスタムビューエンジンやLayout.cshmlのほうが良いでしょう。 – jfar