在C#代码中引用jquery变量(ASP.NET MVC)

时间:2011-07-26 12:36:49

标签: c# javascript asp.net-mvc

如何使用ASP.NET MVC在视图中引用C#块中的jquery变量?

例如:

$(":input[@name='mydropdown']").change(function () {
        var selection = $("#myselection").val();
        pop($("#md"), <%= Model.choices[selection] %>);
});

我的C#块中的选择与我的jquery中引用的选择相同。

3 个答案:

答案 0 :(得分:7)

这是不可能的。在将HTML发送到用户的浏览器之前执行C#代码,这是在加载jQuery之前,这是在变量selection有机会存在之前。

有两种方法可以解决这个问题:

  1. 将您关注的所有数据从Model.choices转储到JavaScript变量;然后,您的JS代码可以访问该变量。如果您的数据量不是太大,这很简单也很好。
  2. 让JS代码向服务器发出AJAX请求,通过将selection的值作为查询字符串参数传递来获取所需的任何数据。

答案 1 :(得分:0)

也许从jquery网站尝试Sharpkit插件:

http://plugins.jquery.com/project/SharpKit

答案 2 :(得分:0)

你不能这样做是因为浏览器(客户端)不与服务器共享任何内存或状态

即。

  • 服务器执行呈现html和js
  • 的c#
  • 浏览器下载并解释它
  • 浏览器执行javascript(无c#!)

我会选择Jon的建议1)因为它不需要再次回调服务器就会更有效率。

ASP.NET MVC万岁! :)