asp.net mvc 2 - вернуть JavaScript с помощью View - PullRequest
0 голосов
/ 13 мая 2010

с использованием ASP.NET MVC 2 У меня есть меню навигации внутри моей мастер-страницы. В меню навигации я пытаюсь добавить класс, к которому относится текущая страница (то есть домашняя страница добавит class = "active" к кнопке Home). Я пытаюсь учесть масштабируемость и тот факт, что я не хочу менять отдельные страницы, если навигация изменится позже.

Единственный способ, которым я могу думать об этом:

  1. Добавить JavaScript к каждому отдельному представлению, которое добавит класс, когда DOM будет готов
  2. Возврат JavaScript при возврате View ()

в пункте (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 вместе с вашим видом из контроллера

Ответы [ 2 ]

1 голос
/ 13 мая 2010

Чтобы исправить ваш код, сохраните строку в переменной 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"] %>
0 голосов
/ 10 апреля 2012
public JavaScriptResult Index() 
{
    return JavaScript("<script type='text/javascript' language='javascript'> $(document).ready(function () { console.log('hi hi hi'); }); </script>"); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...