2

私は ASP.Net をまったく初めて使用します。実際にASP期間に新しい。それが非常に明白であれば、私の無知を許してください。

以前はこのようにマスター ページにコードを配置していましたが、ContenPlaceHolder 内のテキストがページが提供するものに置き換えられる場合に備えてコードを変更しました。

<head Runat="server">
    <title><asp:ContentPlaceHolder ID="title" Runat="server"></asp:ContentPlaceHolder></title>
    <asp:ContentPlaceHolder ID="stylesheets" Runat="server">
        <link rel="stylesheet" type="text/css" href="s/main.css" />
    </asp:ContentPlaceHolder>
    <asp:ContentPlaceHolder ID="scripts" Runat="server">
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
        <!--[if lt IE 9]>
        <script type="text/javascript" src="js/html5.js"></script>
        <![endif]-->
        <script type="text/javascript" src="js/slideshow.js"></script>
    </asp:ContentPlaceHolder>
</head>

それは生産しました:

<head>
    <title></title>
    <link rel="stylesheet" type="text/css" href="s/main.css" />
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <!--[if lt IE 9]>
    <script type="text/javascript" src="js/html5.js"></script>
    <![endif]-->
    <script type="text/javascript" src="js/slideshow.js"></script>
</head>

hrefこれに変更すると、属性が解決されると判断されました。

<head Runat="server">
    <title><asp:ContentPlaceHolder ID="title" Runat="server"></asp:ContentPlaceHolder></title>
    <link rel="stylesheet" type="text/css" href="s/main.css" />
    <asp:ContentPlaceHolder ID="stylesheets" Runat="server"></asp:ContentPlaceHolder>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <asp:ContentPlaceHolder ID="scripts" Runat="server"></asp:ContentPlaceHolder>
    <!--[if lt IE 9]>
    <script type="text/javascript" src="js/html5.js"></script>
    <![endif]-->
    <script type="text/javascript" src="js/slideshow.js"></script>
</head>

<head Runat="server">
    <title><asp:ContentPlaceHolder ID="title" Runat="server"></asp:ContentPlaceHolder></title>
    <link rel="stylesheet" type="text/css" href="./s/main.css" />
    <asp:ContentPlaceHolder ID="stylesheets" Runat="server"></asp:ContentPlaceHolder>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <asp:ContentPlaceHolder ID="scripts" Runat="server"></asp:ContentPlaceHolder>
    <!--[if lt IE 9]>
    <script type="text/javascript" src="js/html5.js"></script>
    <![endif]-->
    <script type="text/javascript" src="js/slideshow.js"></script>
</head>

なりました

<head>
    <title></title>
    <link rel="stylesheet" type="text/css" href="masters/s/main.css" />
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <!--[if lt IE 9]>
    <script type="text/javascript" src="js/html5.js"></script>
    <![endif]-->
    <script type="text/javascript" src="js/slideshow.js"></script>
</head>

さて、ここと私の本を読んだ後、私はこれを思いつきましたが、これも正しくありません.

<head Runat="server">
    <title><asp:ContentPlaceHolder ID="title" Runat="server"></asp:ContentPlaceHolder></title>
    <link rel="stylesheet" type="text/css" href="~/s/main.css" />
    <asp:ContentPlaceHolder ID="stylesheets" Runat="server"></asp:ContentPlaceHolder>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <asp:ContentPlaceHolder ID="scripts" Runat="server"></asp:ContentPlaceHolder>
    <!--[if lt IE 9]>
    <script type="text/javascript" src="js/html5.js"></script>
    <![endif]-->
    <script type="text/javascript" src="js/slideshow.js"></script>
</head>

プロデュース:

<head>
    <title></title>
    <link rel="stylesheet" type="text/css" href="../s/main.css" />
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <!--[if lt IE 9]>
    <script type="text/javascript" src="js/html5.js"></script>
    <![endif]-->
    <script type="text/javascript" src="js/slideshow.js"></script>
</head>

フォルダのセットアップは次のようになります。

/masters/normal-page.master
/index.aspx #uses normal-page.master

さて、問題は、この動作を無効にするhref="s/main.css"か、または同等のものを生成するにはどうすればよいですか? はい、明白な解決策はnormal-page.masterルートに移動することですが、ルート フォルダーが乱雑になるのは好きではありません。

また、オリジナルを使用し、ページがそのプレースホルダーに何かを与えた場合、プレースホルダータグの間のテキストは置き換えられますか、それとも追加されますか? (この本は、私がこれらすべてを知っていると仮定しているようだ。)

また、私は Visual Studio を使用しておらず、まだコストを正当化できないため使用しません。私はメモ帳++を使用しています。

4

1 に答える 1

2

ResolveUrlこれを非常に簡単にする方法があります。これを試して、役立つかどうかを確認してください。

<link href="<%= ResolveUrl("~/s/main.css")%>" rel="stylesheet" type="text/css" />

追加の読み物: Control.ResolveUrl メソッド

于 2012-06-05T17:19:46.447 に答える