将MVC2变量导入Jquery
我正在尝试在Jquery中操作asp.net MVC2视图变量将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变量 我上面所做的似乎根本不起作用
(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>