2010-05-13 119 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>"); 
}