繁体   English   中英

asp.net mvc 2-使用View返回JavaScript

[英]asp.net mvc 2 - return JavaScript with View

使用ASP.NET MVC 2,我的母版页中有一个导航菜单。 在导航菜单中,我尝试向当前页面所涉及的类添加一个类(即,主页会将class =“ active”添加到“主页”按钮)。 我正在尝试考虑可伸缩性以及以下事实:如果以后导航发生更改,我不想更改单个页面。

我能想到的唯一方法是:

  1. 将JavaScript添加到每个单独的View中,以便在DOM准备就绪时添加类
  2. 发生return View()时返回JavaScript

关于(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作为结果

你们有什么想法吗

  • 除了我列出的解决方案之外,如何解决导航菜单问题
  • 从Controller返回JavaScript以及您的视图

要修复您的代码,请在ViewData [“ message”]变量中保存一个字符串:

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

    return View();
}

然后使用<%=%>而不是<%:%>将其呈现在页面上:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM