Как получить ViewData в скрипте в MVC? - PullRequest
0 голосов
/ 12 марта 2010

Я хочу выполнить функцию при загрузке частичного представления. У меня есть частичное мнение о следующем. Я пытаюсь вызвать функцию из скрипта. Но я думаю, что не могу использовать ViewData в моем скрипте. Я не знаю, как правильно использовать viewdata в сценарии. Есть ли способ получить доступ к viewdata внутри скрипта.

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<clsAdministration>" %>
    <script language="javascript" type="text/javascript" for="window" event="onload">              
      InitializeView(ViewData["RoleErrMessage"]);  
    </script>

    <script type="text/javascript" language="Javascript">
      function InitializeView(msg) {
        if (msg.toString().length > 0) {
          alert(msg);
        }   
      }
    </script>

Спасибо, Капил

Ответы [ 3 ]

3 голосов
/ 12 марта 2010

Если вы измените эту строку:

InitializeView(ViewData["RoleErrMessage"]);

Примерно так:

InitializeView('<%=ViewData["RoleErrMessage"]%>');

Это будет работать. Причина этого в том, что скрипт, который будет запущен, таков:

InitializeView('Message');

Код на стороне сервера (<%=ViewData["RoleErrMessage"]%>) будет выполнен на стороне сервера, а затем результат будет отправлен клиенту, и ваш JavaScript будет работать.

0 голосов
/ 18 апреля 2013

Это можно сделать с помощью следующего кода, который я только что протестировал.

var variable_X=('@ViewData["pubId"]');
0 голосов
/ 12 марта 2010

Kapil, возможно, скрипт выполняется до полной загрузки документа.

Можете ли вы попробовать запустить его, когда документ загружен. Не знаете, как это сделать в javascript, но в jQuery вы напишите;

$('document').ready(function(){InitializeView('<%=ViewData["RoleErrMessage"]%>'); });

Я думаю, вам все еще нужно сделать код, предложенный @Mattias, но я могу ошибаться.

Вышеприведенное абсолютно не проверено, поэтому вам, возможно, придется немного подстроиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...