将MVC2变量导入Jquery

我试图在Jquery中操作一个asp.net MVC2视图变量…

(function () { debugger; var $a = 10; var $b = ''; var $c = 12; }); 

正如您可能已经猜到的那样,我正在尝试操作我在Jquery的ASP.net MVC2视图中启动的切换变量。

我上面所做的似乎根本不起作用。 我尝试加载的页面,每次尝试打开时都会爆炸。 任何想法为什么会这样? 注意……即使我摆脱”(撇号),我的页面仍然会爆炸。 我还尝试公开这个变量。 这似乎也不起作用。

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

我的页面将该值设置为我之前描述的视图中的变量

这是我所期待的 当我将变量设置为11或者一些微不足道的东西时,我的页面

我很难收到正在发送到页面的错误消息。 我必须弄清楚它的生成位置并尝试从那里追逐它。 我的同事为此特定页面设置了某种Javascript错误路由方案。 我在破译正在发生的事情时遇到了一些麻烦。 如果我知道错误,我可能会处于良好状态。

更新2刚刚弄清楚了错误

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

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

看起来您尝试使用的toggle变量在视图中未定义。

在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" %>    

现在让我们假设您的视图模型包含一些字符串类型甚至其他复杂对象的属性。 在这种情况下,您需要正确编码它们。 确保正确编码传递给javascript的值的最佳方法是使用javascript文字(JSON表示法):

  

请注意, JavaScriptSerializer类是在System.Web.Script.Serialization命名空间中的System.Web.Extensions程序集中定义的,因此请确保将它们放入范围。