【问题标题】:javascript parameter doesnt exist in the current context当前上下文中不存在 javascript 参数
【发布时间】:2013-10-04 17:47:32
【问题描述】:

为什么这不起作用?我该如何申报这些?考虑到 topicid 将是一个 int 并且 topicname 将是一个字符串。

function changetotopicdetail(topicid, topicname) {
    $('#loadingAjaxs').show();
    $('#flubestext').hide();
    $('#contentwrap').load('@Url.Action("Detail", "Topics", new { @id = topicid,  @namespace = topicname, @Forum = "all", @page = 0})', function () { 
    $('#loadingAjaxs').hide();
   $('#flubestext').show(); 
   window.history.pushState(null, 'title', '/topics');
   })
}

谢谢

【问题讨论】:

  • 在这里查看答案:stackoverflow.com/questions/9751109/…
  • 我看不出这与我的问题有什么关系?
  • @alxndr 发布了一个与您的问题完全相关的问题...您在此问题上犯的错误相同。

标签: javascript asp.net-mvc


【解决方案1】:

根据@alxndr 的提示,this question 有同样的错误,用这样的代码解决了:

function changetotopicdetail(topicid, topicname) {
    $('#loadingAjaxs').show(); 
    $('#flubestext').hide();

    var link = '@Url.Action("Detail", "Topics", new { @id = -1,  @namespace = -2, @Forum = "all", @page = 0})';

    link = link.replace("-1", topicid);
    link = link.replace("-2", topicname);

    $('#contentwrap').load(link, function () { 
        $('#loadingAjaxs').hide();
        $('#flubestext').show(); 
        window.history.pushState(null, 'title', '/topics'); 
    });
}

您的错误是您试图在 Razor - 视图 - 上下文中访问两个 JavaScript 变量(topicidtopicname)。 Razor 无法访问它,因此这两个变量对于它来说是未知的。代码所做的是在 JavaScript 变量上打印 @Url.Action 结果,然后在 JavaScript 中(您可以访问这些参数)将该链接 joker 字符 -1-2 替换为参数。所以你得到了你需要的链接。希望我的解释清楚。

【讨论】:

  • @user1311546 我很高兴听到它!
猜你喜欢
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 2019-08-05
  • 2020-07-31
  • 2021-01-16
  • 1970-01-01
  • 2018-06-07
相关资源
最近更新 更多