Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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
将MVC2变量导入Jquery_Jquery_Asp.net_Asp.net Mvc 2_Variables - Fatal编程技术网

将MVC2变量导入Jquery

将MVC2变量导入Jquery,jquery,asp.net,asp.net-mvc-2,variables,Jquery,Asp.net,Asp.net Mvc 2,Variables,我正在尝试在Jquery中操作asp.net MVC2视图变量 (function () { debugger; var $a = 10; var $b = '<%:toggle %>'; var $c = 12; }); (函数(){ 调试器; var$a=10; var$b=''; var$c=12; }); 正如您可能已经猜到的,我正在尝试操作我在Jquery的ASP.net MVC2视图中启动的toggle变量 我上面所做的似乎根本不起作用

我正在尝试在Jquery中操作asp.net MVC2视图变量

(function () {
    debugger;
    var $a = 10;
    var $b = '<%:toggle %>';
    var $c = 12;
});
(函数(){
调试器;
var$a=10;
var$b='';
var$c=12;
});
正如您可能已经猜到的,我正在尝试操作我在Jquery的ASP.net MVC2视图中启动的toggle变量

我上面所做的似乎根本不起作用。我试图加载的页面在每次尝试打开时都会爆炸。你知道为什么吗?注意。。。即使我去掉了“”(撇号),我的页面仍然会爆炸。我还试图公开讨论中的变量。这似乎也不起作用

预期更新与我获得的更新 我不希望得到这个

这就是我所期望的

我很难获得发送到页面的错误消息。我必须弄清楚它是在哪里生成的,然后试着从那里把它追下去。我的同事为此特定页面设置了某种Javascript错误路由方案。我在理解发生的事情上有点困难。如果我知道这个错误,我的状态可能会很好

更新2刚刚发现错误

TemplateInfo.aspx(371):错误CS0103:名称“toggle”在当前上下文中不存在


我猜这个变量必须以某种方式公开,或者以某种方式放入范围。怎么可能。据我所知,你不能用MVC2创建公共变量吗?您可以吗?

看起来您试图使用的
切换变量在视图中没有定义

在ASP.NET MVC中,控制器操作通常将视图模型传递给视图。这些视图模型包含视图将使用的属性。因此,在ASP.NET MVC应用程序中,您总是从定义视图模型开始:

public class MyViewModel
{
    public bool IsToggle { get; set; }
}
然后编写一个控制器操作,该操作实例化此视图模型并将其传递给视图:

public ActionResult Index()
{
    var model = new MyViewModel
    {
        IsToggle = true
    };
    return View(model);
}
最后,将强类型视图写入该视图模型,您可以在其中使用其属性:

<%@ Page 
    Language="C#" 
    MasterPageFile="~/Views/Shared/Site.Master" 
    Inherits="System.Web.Mvc.ViewPage<AppName.Models.MyViewModel>" %>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

    <script type="text/javascript">
    (function () {
        debugger;
        var $a = 10;
        var $b = <%= Model.IsToggle %>;
        var $c = 12;
    });    
    </script>

</asp:Content>

发生了什么事?产生的源头是什么?它爆炸了?这是一个非常描述性的问题描述。气球通常会爆炸。不工作的源代码通常会生成错误消息,或者在运行时表现不符合预期。请注意,您正在使用
呈现变量切换。这将生成一个经过HTML编码的值。这就是你想要的吗。否则,您可能需要使用
,它只会呈现值。@John Harstock。三叉戟也在上面。它似乎不起作用。达林·迪米特罗夫。我本想让维特爆炸的。页面无法正确加载。我猜一个错误被抛出回页面。我不知道它发生在哪里。@DmainEvent,你说的
是什么意思?页面加载不正确?定义你期望的,然后解释你观察到的。屏幕截图是受欢迎的。您是否在控制台中收到一些错误消息?生成的HTML是什么样子的?答案很好,有很好的例子。如果我使用的是强类型视图和定义良好的模型驱动的MVC站点,我肯定会考虑您的建议。我的模型几乎是一个XML字符串。我可以直接将其传递给视图,但我很难做到这一点,所以我只将其放入ViewData[]对象中。但这对于联合国发起的MVC来说是很好的文档。谢谢。我的问题是我在jquery函数的作用域之外定义了这个切换变量。显然,ASP:content窗格在MVC视图中有一个作用域。我不知道。我将变量放在正确的ASP:content窗格和viola中。再次感谢。
<script type="text/javascript">
(function () {
    debugger;
    // we JSON serialize the entire model:
    var model = <%= new JavaScriptSerializer().Serialize(Model) %>;

    // Now you can manipulate individual model properties:
    alert(model.SomeProperty);
});    
</script>