0

次のような asp.net サブマスター ページのセットアップがあります。

<asp:Content ID="MainContent" runat="server" ContentPlaceHolderID="mainContent">
    <!doctype html public "-//w3c//dtd xhtml 1.0 strict//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd">
    <html>
        <head >
            <title></title>
            <asp:ContentPlaceHolder ID="HeadContent" runat="server">
            </asp:ContentPlaceHolder>
        </head>
        <body>
            ...
        </body>
    </html>
</asp:Content>

ASP.NET が HEAD に入れた属性を削除し続けるのはなぜですか? 具体的には、次のようにしようとしています。

<head runat="server">

HEAD に runat がない場合、次のエラーが表示されます。

Using themed css files requires a header control on the page. (e.g. <head runat="server" />). 

そして、これが私のマスターマスターで、上記のサブマスターページをロードします:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.Master.cs" Inherits="HeadOffice.Site" %>
<asp:contentplaceholder id="MainContent" runat="server">
</asp:contentplaceholder>

asp:Content が html、head、body から属性を削除していることがわかりました。頭だけじゃない。とにかくそれを止めることはありますか?

4

3 に答える 3

0

メインのマスターページは次のようになりますか?

 <html xmlns="http://www.w3.org/1999/xhtml">
   <head runat="server">
     <title></title>
        <asp:ContentPlaceHolder ID="head" runat="server">
        </asp:ContentPlaceHolder>
   </head>
<body>
    <form id="form1" runat="server">
    <div>
       <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">

       </asp:ContentPlaceHolder>
    </div>
    </form>
</body>
</html>

そうでない場合は、メインのマスターページをこのコードのように見せてください。 これを削除しないように、タグ<link rel="stylesheet" type="text/css" href="my.css"/>の間に追加しないでください。<head><asp:ContentPlaceHolder ID="head" runat="server"/>

cssが各ポストバックを非表示にできるもう1つのオプションは、aspxファイルが見つからないMasterPagefile場合やAutoEventWireup属性の例です。

  <%@ Page Title="" Language="C#" MasterPageFile="~/Page.Master" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebForm1" %>

編集: メインのPageMaster取得<head>タグがコードで行ったように同じページに別のタグを追加できない場合は、次の方法でコンテンツのみを追加する必要があります

<asp:Content ID="content1" ContentPlaceHolderID="head" runat="server"/>あなたのページに配置されますaspx

それが役に立ったら教えてください:)

于 2012-06-20T20:27:18.433 に答える
0

runat = serverを使用するときは、サーバーがアクセス方法を認識できるようにIDを指定する必要があると思います。

于 2012-06-20T20:27:48.443 に答える
0

私が見つけた回避策は、onSave イベントを発生させた場合にのみ、asp:content が HTML を変更するというものでした。そのため、代わりに編集を行い、保存せずに VS2010 プログラムを閉じて、[保存] をクリックします。この方法では、asp:content がコードを変更する機会がありません。その後、プロジェクトを再度開くことができます。

于 2012-06-21T14:59:11.790 に答える