【问题标题】:jquery not getting variable value from C# varjquery 没有从 C# var 获取变量值
【发布时间】:2012-01-25 00:17:43
【问题描述】:

当我在 .aspx 中使用 sn-ps 时,jquery 工作得很好,包括这个

$(function() {
    var availableTags = [
        "ActionScript",
        "AppleScript",
        "Asp",
        "BASIC",
        "C",
        "C++"
    ];
    $( "#tags" ).autocomplete({
        source: availableTags
    });
});
</script>

然后我在 .cs 文件中编写了以下代码

 protected void Page_Load(object sender, EventArgs e)
{

    DataClassesDataContext db = new DataClassesDataContext();
    var val = from q in db.ques_tbls select q.qTitle;
    db.SubmitChanges();
}

添加后,我在 .aspx 中更改了脚本中的一行,如下所示

 var availableTags = <%=val%>;

我最终遇到了这个错误。 . 编译器错误消息:CS0103:当前上下文中不存在名称“val”

来源错误:

Line 12:       <script type="text/javascript">
Line 13:           $(function () {
Line 14:               var availableTags = <%=val %>;
Line 15:               function split(val) {
Line 16:                   return val.split(/,\s*/);

【问题讨论】:

  • 我的目标是用 CS 变量分配“availableTags =”

标签: c# javascript jquery asp.net asp.net-ajax


【解决方案1】:

您将 val 声明为 Page_Load 方法的局部变量

   var val = from q in db.ques_tbls select q.qTitle; 

它必须存在于类级别,aspx 页面才能使用它。创建一个成员或属性来存储值。

【讨论】:

  • 并且它的范围必须是受保护的或公开的,因为 ASPX 页面继承自代码隐藏页面。
  • 另外,不要忘记在 javascript 变量周围添加分隔符。他们目前失踪了。
【解决方案2】:

只需在您的 C# 代码中创建一个返回标题的函数。

protected string returnTitle() {
   DataClassesDataContext db = new DataClassesDataContext();
   var val = from q in db.ques_tbls select q.qTitle;
   db.SubmitChanges();
   return val.ToString();
}

和 JS..

<script>
    var availableTags = "<%= returnTitle() %>";
    console.log(availableTags);
</script>

虽然这会将 availableTags 作为字符串返回,但如果需要,您可以调整它以返回数组。

【讨论】:

  • 感谢 Jamsi,您的回答也很有帮助
猜你喜欢
  • 2012-09-28
  • 2017-06-27
  • 1970-01-01
  • 1970-01-01
  • 2019-07-12
  • 1970-01-01
  • 2012-09-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多