2010-05-13 38 views
0

使用ASP.NET MVC 2我的主頁面中有一個導航菜單。在導航菜單中,我嘗試添加一個類到當前頁面相關的類(即,主頁將class =「active」添加到Home按鈕)。我試圖考慮可伸縮性以及事實,即如果稍後導航更改,我不想更改單個頁面。asp.net mvc 2 - 使用View返回JavaScript

我能想到這樣做的唯一方法是:

  1. 添加JavaScript的每一個人觀點,會添加類當DOM準備
  2. 返回的JavaScript時返回查看()發生
  3. (2)上的

,我不確定該怎麼做。到目前爲止,我一直在做下面在我的控制器:

public ActionResult Index() 
    { 
     ViewData["message"] = JavaScript("<script type='text/javascript' language='javascript'> $(document).ready(function() { console.log('hi hi hi'); }); </script>"); 

     return View(); 
    } 

,但在我看來,當我打電話:

<%: ViewData["message"] %> 

我得到:System.Web.Mvc.JavaScriptResult作爲結果

請問你們有

  • 如何解決Ì導航任何想法ñ菜單的問題,比我列出
  • 回報的JavaScript以及來自控制器

回答

1

您認爲要解決你的代碼,保存一個字符串中的計算機[「消息」]變量的解決方案,其他:

public ActionResult Index() 
{ 
    ViewData["message"] = "<script type='text/javascript' language='javascript'> $(document).ready(function() { console.log('hi hi hi'); }); </script>"; 

    return View(); 
} 

,然後使其與<%=%在網頁>和不<%:%>:

<%= ViewData["message"] %> 
+0

很奇怪。我可以讓SWORN我嘗試過。我知道使用<%: %>基本上會說HTML.Encode()...但比<%= %>做什麼? – 2010-05-13 19:38:22

+0

另外,除了我列出的解決方案外,您是否還有關於如何解決導航菜單probelem的想法? – 2010-05-13 19:39:05

+1

<%: %> does Html.Encode and <%= %> does not。 對於導航菜單,我通常建議使用ASP.NET的導航功能與站點地圖和所有。閱讀更多關於它。我認爲下一頁將是一個好的開始:http://www.asp.net/mvc/tutorials/providing-website-navigation-with-sitemaps-cs – 2010-05-13 19:45:56

0
public JavaScriptResult Index() 
{ 
    return JavaScript("<script type='text/javascript' language='javascript'> $(document).ready(function() { console.log('hi hi hi'); }); </script>"); 
}