我一直在阅读Steven Sanderson关于移动网络开发http://www.asp.net/learn/whitepapers/add-mobile-pages-to-your-aspnet-web-forms-mvc-application的链接,我正试图在aspx中执行他的剃刀代码。
来自网址的剃刀代码:
@{
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中执行此操作?
答案 0 :(得分:1)
答案是不应该从视图中更改母版页。控制器应该处理它。
从语法上讲,<@% Page >
声明不是标准的asp.net代码,它不会被正确解释,你得到的错误可能是因为它正在加载一个不存在的主页。但请记住,该陈述仅仅是一个设计时特征。
您需要做的是:
<asp:ContentPlaceholders>
使用完全相同的名称。