2012-12-29 145 views
0

我試圖部署一個簡單的Web應用程序在ASP.NET中使用VS2010開發 在開發計算機上本地IIS上的一切都很好,但是我在一個Apache服務器上部署了一個問題:菜單沒有正確渲染,看起來沒有考慮到CSS。asp:菜單不能正確呈現

有沒有人有這樣的問題? 感謝您的幫助!

[編輯] Appache版本2.2.22 單聲道版本2.10.8.1

的Site.Master:

<body> 
<form runat="server"> 
    <div class="page"> 
     <div class="TopBlank"> </div> 
     <div class="header"> 
      <div class="title"> 
       <h1> 
        My ASP.NET Application 
       </h1> 
      </div>    
      <div class="clear hideSkiplink"> 
       <asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal"> 
       <Items> 
        <asp:MenuItem NavigateUrl="~/Default.aspx" Text="Home"/> 
        <asp:MenuItem Text="Google Maps"> 
         <asp:MenuItem Text="HTML" Value="HTML" NavigateUrl="~/Map.htm"></asp:MenuItem> 
         <asp:MenuItem Text="ASPX" Value="ASPX" NavigateUrl="~/Map.aspx"></asp:MenuItem> 
        </asp:MenuItem> 
        <asp:MenuItem NavigateUrl="~/Liens.aspx" Text="Liens utiles"/> 
        <asp:MenuItem NavigateUrl="~/About.aspx" Text="About"/> 
       </Items> 
      </asp:Menu> 
     </div> 
    </div> 
</form> 
</body> 

CSS:

.menu 
{ 
    padding: 4px 0px 4px 8px; 
} 

.menu ul 
{ 
    list-style: none; 
    margin: 0px; 
    padding: 0px; 
    width: auto; 
} 

.menu ul li a, .menu ul li a:visited 
{ 
    background-color: #465c71; 
    border: 1px #4e667d solid; 
    color: #dde4ec; 
    display: block; 
    line-height: 1.35em; 
    padding: 4px 20px; 
    text-decoration: none; 
    white-space: nowrap; 
} 

.menu ul li a:hover 
{ 
    background-color: #bfcbd6; 
    color: #465c71; 
    text-decoration: none; 
} 

.menu ul li a:active 
{ 
    background-color: #465c71; 
    color: #cfdbe6; 
    text-decoration: none; 
} 

.menu ul ul 
{ 
    margin-left: 10%; 
} 

我發現的問題是,當在IIS上運行時,一個asp:菜單被轉換成一個HTML div,而使用mono時,它被轉換成一個HTML表格。看來,在單聲道運行時,CSS類沒有找到,如圖來源:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 
<head><title> 

</title><link rel="stylesheet" type="text/css" href="Styles/Site.css" /> 
<style type="text/css"> 

.ctl00_NavigationMenu_0 {background-color:White;} 
.ctl00_NavigationMenu_1 {border-style:None;text-decoration:none;} 
.ctl00_NavigationMenu_2 {} 
</style></head> 
<body> 
    <form name="aspnetForm" method="post" action="Arduino.aspx" id="aspnetForm"> 
[......] 
<div class="clear hideSkiplink"> 
       <a href="#ctl00_NavigationMenu_SkipLink"> 
<img alt="Skip Navigation Links" height="0" width="0" src="/WebSite/WebResource.axd?d=2OmH9jTSogXsrUt6aDvnYEihIak%3d_NWdhSxeypCYSJgIFnBFWuKjP9Rs%3d_f&amp;t=634787585370000000" style="border-width:0px;" /></a> 
<table cellpadding="0" cellspacing="0" border="0" id="ctl00_NavigationMenu" class="menu ctl00_NavigationMenu_2" IncludeStyleBlock="false"> 
    <tr> 
     <td onmouseover="javascript:Menu_OverStaticLeafItem ('ctl00_NavigationMenu','0')" onmouseout="javascript:Menu_OutItem ('ctl00_NavigationMenu','0')"> 
<table id="ctl00_NavigationMenu_0i" cellpadding="0" cellspacing="0" border="0" width="100%"> 
      <tr> 
       <td style="white-space:nowrap;"><a href="Default.aspx" class="ctl00_NavigationMenu_1" id="ctl00_NavigationMenu_0l">Home</a> 
</td> 
      </tr> 
    </table> 
</td> 
<td style="width:3px;"></td> 
<td onmouseover="javascript:Menu_OverItem ('ctl00_NavigationMenu','1',null)" onmouseout="javascript:Menu_OutItem ('ctl00_NavigationMenu','1')"> 
<table id="ctl00_NavigationMenu_1i" cellpadding="0" cellspacing="0" border="0" width="100%"> 
     <tr> 
      <td style="white-space:nowrap;"><a href="javascript:__doPostBack('ctl00$NavigationMenu','1')" class="ctl00_NavigationMenu_1" id="ctl00_NavigationMenu_1l">Google Maps</a> 
</td><td> 
<img src="/WebSite/WebResource.axd?d=2OmH9jTSogXsrUt6aDvnYEihIak%3d_sxBDVaG6ao8vAH1kuYRka4pbdXI%3d_f&amp;t=634787585370000000" border="0" alt="Expand Google Maps" /> 
</td> 
     </tr> 
    </table> 
    </td> 
<td style="width:3px;"></td> 
<td onmouseover="javascript:Menu_OverStaticLeafItem ('ctl00_NavigationMenu','2')" onmouseout="javascript:Menu_OutItem ('ctl00_NavigationMenu','2')"> 
<table id="ctl00_NavigationMenu_2i" cellpadding="0" cellspacing="0" border="0" width="100%"> 
     <tr> 
      <td style="white-space:nowrap;"> 
<a href="Liens.aspx" class="ctl00_NavigationMenu_1" id="ctl00_NavigationMenu_2l">Liens utiles</a> 
</td> 
     </tr> 
    </table> 
    </td> 
<td style="width:3px;"> 
</td> 
<td onmouseover="javascript:Menu_OverStaticLeafItem ('ctl00_NavigationMenu','3')" onmouseout="javascript:Menu_OutItem ('ctl00_NavigationMenu','3')"> 
<table id="ctl00_NavigationMenu_3i" cellpadding="0" cellspacing="0" border="0" width="100%"> 
     <tr> 
      <td style="white-space:nowrap;"> 
<a href="About.aspx" class="ctl00_NavigationMenu_1" id="ctl00_NavigationMenu_3l">About</a> 
</td> 
     </tr> 
    </table> 
</td> 
</tr> 
</table> 
<div class="" id="ctl00_NavigationMenu_1s" style="visibility:hidden;position:absolute;z-index:1;left:0px;top:0px;"> 
<div id="ctl00_NavigationMenu_1cu" onmouseover="Menu_OverScrollBtn ('ctl00_NavigationMenu','1','u')" onmouseout="Menu_OutScrollBtn ('ctl00_NavigationMenu','1','u')" style="display:block;text-align:center;"> 
    <img src="/WebSite/WebResource.axd?d=2OmH9jTSogXsrUt6aDvnYEihIak%3d_BDOep8uzgXhnBosTOAXwCS8Rjzo%3d_f&t=634787585370000000" alt="Scroll up" /> 
</div> 
<div id="ctl00_NavigationMenu_1cb"> 
    <div id="ctl00_NavigationMenu_1cc"> 
     <table cellpadding="0" cellspacing="0" border="0"> 
<tr> 
    <td onmouseover="javascript:Menu_OverDynamicLeafItem ('ctl00_NavigationMenu','1_0','1')" onmouseout="javascript:Menu_OutItem ('ctl00_NavigationMenu','1_0','1')"> 
<table id="ctl00_NavigationMenu_1_0i" cellpadding="0" cellspacing="0" border="0" width="100%"> 
     <tr> 
      <td style="width:100%;white-space:nowrap;"> 
<a href="Map.htm" class="ctl00_NavigationMenu_1" id="ctl00_NavigationMenu_1_0l">HTML</a> 
</td> 
     </tr> 
    </table> 
</td> 
</tr> 
<tr> 
    <td onmouseover="javascript:Menu_OverDynamicLeafItem ('ctl00_NavigationMenu','1_1','1')" onmouseout="javascript:Menu_OutItem ('ctl00_NavigationMenu','1_1','1')"> 
<table id="ctl00_NavigationMenu_1_1i" cellpadding="0" cellspacing="0" border="0" width="100%"> 
     <tr> 
      <td style="width:100%;white-space:nowrap;"> 
<a href="Map.aspx" class="ctl00_NavigationMenu_1" id="ctl00_NavigationMenu_1_1l">ASPX</a></td> 
     </tr> 
    </table> 
</td> 
</tr> 
</table> 
    </div> 
</div> 
<div id="ctl00_NavigationMenu_1cd" onmouseover="Menu_OverScrollBtn ('ctl00_NavigationMenu','1','d')" onmouseout="Menu_OutScrollBtn ('ctl00_NavigationMenu','1','d')" style="display:block;text-align:center;"> 
    <img src="/WebSite/WebResource.axd?d=2OmH9jTSogXsrUt6aDvnYEihIak%3d_BiLWkNe4ZNGZnI7LWDxYAtinS8U%3d_f&t=634787585370000000" alt="Scroll down" /> 
    </div> 
</div> 
<a id="ctl00_NavigationMenu_SkipLink"></a> 
      </div> 

進行比較的IIS版本:

<div class="clear hideSkiplink"> 
      <a href="#NavigationMenu_SkipLink"><img alt="Liens Ignorer la navigation" src="/WebResource.axd?d=vNc13qxX3XhBCykqqeAM4K6DxyzXtiKPMSkmgOEeg_C2LMTfPWT8UVPq_FQ2dO_k8csGANppvDNQ8U1ILvqfCCUzXeU7VT9PTkQGnNHogQU1&amp;t=634679288663570000" width="0" height="0" style="border-width:0px;" /></a><div class="menu" id="NavigationMenu"> 
<ul class="level1"> 
    <li> 
     <a class="level1" href="Default.aspx">Home</a> 
    </li> 
    <li> 
     <a class="popout level1" href="#" onclick="__doPostBack(&#39;ctl00$NavigationMenu&#39;,&#39;Google Maps&#39;)">Google Maps</a> 
     <ul class="level2"> 
      <li> 
       <a class="level2" href="Map.htm">HTML</a> 
      </li> 
      <li> 
       <a class="level2" href="Map.aspx">ASPX</a> 
      </li> 
     </ul> 
    </li> 
    <li> 
     <a class="level1" href="Liens.aspx">Liens utiles</a> 
    </li> 
    <li> 
    <a class="level1" href="About.aspx">About</a> 
    </li> 
</ul> 
</div> 
    <a id="NavigationMenu_SkipLink"></a> 
</div> 
+0

如果可能,請張貼最小樣本。我沒有VS來製作一個,但我有apache和mono來測試。還要指定apache和單聲道版本。 – Jester

回答

0

好,後幾個小時嘗試要在web.config中找到解決方案,我終於發現解決方案來自mono-apache-server版本。我使用mono-apache-server2而不是4. 然後,我安裝了正確的版本,配置了虛擬主機,現在一切正常!

0

ASP.NET放入的錨標籤會自動在菜單上添加額外的垂直空間。錨標籤會自動放在菜單上方,並在Internet Explorer和Google Chrome中將渲染關閉。它可以在Mozilla Firefox中正常工作,即使在圖像上也是如此。

要解決此問題,請將SkipLinkText =「」屬性添加到ASP.NET菜單控件中,以解決渲染問題。

<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal" SkipLinkText="">