2010-05-13 3 views
0

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

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

  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 в результате

ли вы, ребята, есть какие-нибудь идеи на

  • Как решить navigatio Проблема меню п, кроме решений я перечислил
  • возвратный JavaScript вместе с видом из контроллера

ответ

1

Чтобы исправить код, сохранить строку в ViewData [ «сообщение»] переменную:

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

странно. Я мог бы подумать об этом. Я знаю, что использование <%: %> будет в основном говорить HTML.Encode() ... но чем это делает <%= %>? –

+0

также, было бы у вас есть идея о том, как решить навигационное меню probelem, кроме тех решений, которые я перечислил? –

+1

<%: %>. Html.Encode и <%= %> нет. Для навигационных меню я обычно рекомендую использовать возможности навигации ASP.NET с картами и всеми. Узнайте больше об этом. Я думаю, что следующая страница будет хорошим началом: http://www.asp.net/mvc/tutorials/providing-website-navigation-with-sitemaps-cs –

0
public JavaScriptResult Index() 
{ 
    return JavaScript("<script type='text/javascript' language='javascript'> $(document).ready(function() { console.log('hi hi hi'); }); </script>"); 
} 
Смежные вопросы