【问题标题】:Jquery / .Net Passing a Server Variable in the Data of Ajax CallJquery / .Net 在 Ajax 调用的数据中传递服务器变量
【发布时间】:2012-03-08 00:52:25
【问题描述】:

我想在 Ajax 调用的数据中获取一个 .Net 服务器变量和用户。

$.ajax({
  url: "get_user_info.aspx",
  data: "user_id=<%=UserID%>" 
});

但是,我收到了上面的 Object Expected 错误。

UserID 是 C# 代码隐藏中的 int。

我尝试将它转换为这样的字符串:

var useridstring = <%=UserID%>;
var mynewstring = useridstring.toString();

 $.ajax({
      url: "get_user_info.aspx",
      data: {user_id:mynewstring} 
    });

但它不工作。我在这里阅读了有关使用带有变量的隐藏输入的帖子,但如果上述方法可行,我希望避免使用这种方法。

【问题讨论】:

  • 第二种情况:1.useridstring的值是多少,2.在什么情况下“不工作”?

标签: jquery asp.net ajax server-variables


【解决方案1】:

您的字段名称(user_id)需要是一个字符串:

var useridstring = '<%=UserID%>';


 $.ajax({
      url: "get_user_info.aspx",
      data: {'user_id':useridstring} 
    });

【讨论】:

  • 从技术上讲,字段名不必是字符串,除非你对它做一些奇怪的事情(比如传递一个数组)。但是您的代码确实解决了问题,因为第一行 - 在 周围没有引号,javascript 将尝试评估 UserID 作为变量而不是字符串。
  • 嗯...仍然无法正常工作。每当我在任何地方输入 时,我仍然会收到一个 Javascript 错误 Object Expected。如果我把它拿出来,它工作得很好。我把它放进去,页面下面的 JS 就吓坏了。我正在使用带有 ViewState 的 .Net 2.0 框架。那里会不会有冲突?
  • 能否请您发布您的 HTML(不是您的 .net 源代码):jsfiddle.net
  • 所以我最终不得不做隐藏字段的解决方法。感谢您的帮助。
【解决方案2】:

我会将变量放在隐藏的 div 中,然后从 jquery 中获取该 div 的内部文本。

var useridstring = $get('myDiv');

<div id='myDiv' style="display:none;><%:UserID%></div>

【讨论】:

  • 是的,Diodeus 给出了正确的答案,实际上我的解决方案无助于解决问题...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-07
  • 1970-01-01
  • 2015-08-24
  • 1970-01-01
  • 2013-01-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多