Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将Viewdata添加到Javascript中?_Javascript_Asp.net Mvc - Fatal编程技术网

如何将Viewdata添加到Javascript中?

如何将Viewdata添加到Javascript中?,javascript,asp.net-mvc,Javascript,Asp.net Mvc,我有一个ASP.NETMVC项目。我正在调用控制器中的一个存储过程,并将该结果放入我的viewdata中,如下所示: var sp = callsp(parameter1, paramter2) if(abovespcontainsnoresult) { viewdata["result"] = "This sp doesn't consists any results"; } $(document).ready(function () { $("#b

我有一个ASP.NETMVC项目。我正在调用控制器中的一个存储过程,并将该结果放入我的viewdata中,如下所示:

 var sp = callsp(parameter1, paramter2)

 if(abovespcontainsnoresult)
 {
       viewdata["result"] = "This sp doesn't consists any results";
    }
 $(document).ready(function () {
     $("#button").change(function (e) {

          if ($(this).val() != '' &&  ($(@ViewData["result"].ToString()) != "")) 
        {
             $("#button1").attr('disabled', false);
             $("#button2").attr('disabled', false);
             $("#button3").attr('disabled', false);
             $("#button4").attr('disabled', false);
         }
      }
现在我必须将其传递给脚本函数。我有一个脚本,当我从下拉列表中选择列表时,它会启用按钮:

  $(document).ready(function () {
     $("#button").change(function (e) {

         if ($(this).val() != '')  {
             $("#button1").attr('disabled', false);
             $("#button2").attr('disabled', false);
             $("#button3").attr('disabled', false);
             $("#button4").attr('disabled', false);
         }
      }
现在我要做的是将viewdata结果添加到此脚本,并检查它是否为null。我试着这样做:

 var sp = callsp(parameter1, paramter2)

 if(abovespcontainsnoresult)
 {
       viewdata["result"] = "This sp doesn't consists any results";
    }
 $(document).ready(function () {
     $("#button").change(function (e) {

          if ($(this).val() != '' &&  ($(@ViewData["result"].ToString()) != "")) 
        {
             $("#button1").attr('disabled', false);
             $("#button2").attr('disabled', false);
             $("#button3").attr('disabled', false);
             $("#button4").attr('disabled', false);
         }
      }

但是如果我添加这个条件,脚本就不起作用了。那么,如何将viewdata结果检查到脚本中,并检查它是否为null?

如果您在脚本中加上记号,它将起作用

 '@ViewData[result]'

如果它是一个外部JS文件(脚本未在视图中编码),那么它将不工作

如果您勾选它,它将工作

 '@ViewData[result]'
如果它是外部JS文件(脚本未在视图中编码),它将不起作用

$(ViewData[“result”].ToString())
的值存储到JavaScript变量中,然后在
If
语句中使用该变量

$(document).ready(function () {
    $("#button").change(function (e) {
        var result = $('@ViewData["result"].ToString()');

        if ($(this).val() != '' && result !== '') 
        {
             $("#button1").attr('disabled', false);
             $("#button2").attr('disabled', false);
             $("#button3").attr('disabled', false);
             $("#button4").attr('disabled', false);
         }
      }
您最初的做法是正确的。

$(ViewData[“result”].ToString())
的值存储到JavaScript变量中,然后在
if
语句中使用该变量

$(document).ready(function () {
    $("#button").change(function (e) {
        var result = $('@ViewData["result"].ToString()');

        if ($(this).val() != '' && result !== '') 
        {
             $("#button1").attr('disabled', false);
             $("#button2").attr('disabled', false);
             $("#button3").attr('disabled', false);
             $("#button4").attr('disabled', false);
         }
      }
最初您的思路是正确的。

可能的重复可能的重复