【问题标题】:Javascript Variable in Url.ContentUrl.Content 中的 Javascript 变量
【发布时间】:2015-04-22 13:13:47
【问题描述】:

我有一个名为 locid 的 javascript 变量,我试图通过如下设置 div 的 data-url 将其用作 URL 的一部分:

data-url='@Url.Content("~/Catalogue_Items/ItemsActionViewPartial/")@Model.CatItemID?LocationID=locid&AsyncUpdateID=catalogue-view'>

我知道我不能像我在示例代码中所做的那样将 locid 扔到那个字符串中,但我只是把它放在那里以说明我需要我的 javascript 变量的位置。我怎样才能做到这一点??

【问题讨论】:

  • 你是如何设置data-url的?
  • “GET”表单会使用 global.aspx 页面将其附加到 URL 中,不是吗?您没有使用表单来填充此 URL
  • JavaScript 和服务器端代码不能同时运行。
  • 何时以及如何设置 JavaScript 变量的值?该变量是否具有解析 HTML 代码时的值?
  • @epascarello 我知道这里有客户端和服务器代码的混合,但是有办法解决这个问题,请不要评论“无法完成”,因为你不知道该怎么做它。

标签: javascript razor


【解决方案1】:

这里的问题是 @url.content 需要在服务器上运行,其中 JavaScript 变量不可见。编写一个独立的 AJAX 调用来获取内容,然后在 data-url 中设置内容

【讨论】:

    【解决方案2】:

    您不能将 Javascript 变量直接用于属性。 一种解决方法是重新排序 url 的参数并在脚本标记中设置 JavaScript 变量。

    <button id="myButton" data-url='@Url.Content("~/Catalogue_Items/ItemsActionViewPartial/")@Model.CatItemID?AsyncUpdateID=catalogue-view'></button>
    

    我在这里重新排序了 url 参数。位置参数将通过以下脚本设置。将此脚本放在按钮元素之后。

    <script>
    var button = document.getElementById('myButton');
    var url=button.getAttribute('data-url');
    url+="&LocationID=" + locid;
    button.setAttribute('data-url',url);
    </script>
    

    【讨论】:

    • 谢谢,这确实设置了 data-url 属性,但我的问题是页面加载,然后设置了属性,因此它不会使用适当的数据更新我的 div。如何刷新局部视图?
    【解决方案3】:

    你可以使用document.write将值放在页面中,但是你不能把它写在标签里面,你必须写出整个标签。示例:

    <script>
    document.write('<div data-url="@Url.Content("~/Catalogue_Items/ItemsActionViewPartial/")@Model.CatItemID?LocationID=' + locid + '&AsyncUpdateID=catalogue-view">');
    </script>
    

    【讨论】:

      猜你喜欢
      • 2014-02-24
      • 1970-01-01
      • 2021-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-23
      相关资源
      最近更新 更多