【问题标题】:How to use MasterPage for WebPage in SubDirectory?如何在子目录中将 MasterPage 用于 WebPage?
【发布时间】:2013-05-08 23:51:27
【问题描述】:

解析器错误或母版页错误?

我的 Visual Studio 2010 项目中有一个带有 MasterPage 的网站。

我有许多 WebForms 位于子目录中,但对于这个问题,我将重点关注名为 /contact 的子目录。

在 VS2010 中,/contact 目录中的所有 WebForms 都显示为它们应该使用此页面指令代码:

<%@ MasterPageFile="~/Site.Master" ... %>

据我了解,~/ 应该将页面定向到根文件夹。

然而,当我转到该文件夹​​中的页面时,我收到一个解析器错误,指出 MasterPage 不存在,因为该页面正试图从这里加载 MasterPage:

'/contact/Site.Master'

如果我修改我的 VS2010 项目,以便页面指令尝试退回到根级别,VS 项目会给我母版页错误。

不起作用:

<%@ MasterPageFile="../~/Site.Master" ... %>

也不起作用:

<%@ MasterPageFile="~/../Site.Master" ... %>

这里有什么诀窍?

【问题讨论】:

    标签: visual-studio-2010 master-pages


    【解决方案1】:

    你最后的visualstdio可能有问题。

    我很确定你的做法是正确的。

    我刚刚尝试创建一个 asp.net 项目, 添加了一个名为contact的文件夹,然后在里面拖了一个default.aspx页面

    这是标记文件中的代码

    <%@ Page Title="Home Page" Language="C#"  MasterPageFile="~/Site.master" AutoEventWireup="true"
        CodeFile="Default.aspx.cs" Inherits="_Default" %>
    

    这是文件夹结构。

    每件事都在我的尽头。

    顺便说一句,如果您确实试图从联系人文件夹中的页面读取母版页,并且框架以某种方式将联系人视为根目录,请尝试

    ../Site.Master

    【讨论】:

    • 我可能将 '/contact' 设置为 IIS 中的本地根(不记得了)。让我试试../Site.Master。哈! VS2010没有报错,但是网页Parser Error Message: 虚拟路径'/Site.Master'映射到另一个应用程序,这是不允许的。好的,我需要了解如何将其取消设置为应用程序根目录。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-11
    • 1970-01-01
    • 2010-10-20
    • 2017-07-13
    • 1970-01-01
    • 2013-09-09
    相关资源
    最近更新 更多