我正在寫一個MVC應用程序與C#。在這一個特定的部分,我有一個導航條件開關,以突出顯示適當的選項卡。下面是該代碼:問題<%: ... %>與<%= %>當顯示生成的文本
<script type="text/C#" runat="server">
string oController;
string oAction;
const string current = "class=\"current_page\"";
protected override void OnLoad(EventArgs e)
{
oController = ViewContext.RouteData.Values["controller"].ToString();
oAction = ViewContext.RouteData.Values["action"].ToString();
base.OnLoad(e);
}
</script>
<div id="menu">
<ul>
<li <%= (oController.Equals("Home") ? current : "") %>><a href="/">Home</a></li>
<li><a href="/CustomerManager/">Customer Manager</a></li>
<!-- <%: oController.Equals("Home") %> -->
<!-- <%: oAction %> -->
</ul>
</div>
在這條線(<li <%= (oController.Equals("Home") ? current : "") %>><a href="/">Home</a></li>
)如果我使用<%: %>
ASP金塊,而不是<%= %>
(如建議,因爲後者被很快淘汰),生成的文本出來作爲
<li class="current_page"><a href="/">Home</a></li>
而不是
<li class="current_page"><a href="/">Home</a></li>
任何sugges tions和/或爲什麼會發生這種情況的原因?謝謝!
感謝您的澄清。我閱讀了ASP.NET MVC官方教程之一,在版本4後刪除了<%='。你知道這是否正確嗎? – Anders 2010-09-09 21:04:58
@Anders - 我沒有聽說過,但我覺得它不太可能。對於初學者來說,它會破壞太多的代碼。 – 2010-09-09 21:32:38
'<%='有時候是完全必要的。除非你有充分的理由不要(像你的)那樣使用'<%:'。它沒有被逐步淘汰 – BritishDeveloper 2010-09-09 22:33:57