我有一个名为locid
的javascript变量,我尝试将其用作URL的一部分,方法是设置div的data-url,如下所示:
data-url='@Url.Content("~/Catalogue_Items/ItemsActionViewPartial/")@Model.CatItemID?LocationID=locid&AsyncUpdateID=catalogue-view'>
我知道我不能像我在示例代码中那样将locid抛出到该字符串中,但我只是把它放在那里以说明我需要的javascript变量。我怎么能实现这个?
答案 0 :(得分:3)
这里的问题是@ url.content需要在服务器上运行,其中JavaScript变量不可见。编写一个独立的AJAX调用来获取内容,而不是在data-url中设置内容
答案 1 :(得分:2)
您无法直接将Javascript变量用于属性。 解决方法可以是重新排序网址的参数并在脚本标记中设置JavaScript变量。
<button id="myButton" data-url='@Url.Content("~/Catalogue_Items/ItemsActionViewPartial/")@Model.CatItemID?AsyncUpdateID=catalogue-view'></button>
我在这里重新排序了url参数。 location参数将通过以下脚本设置。将此脚本放在按钮元素之后。
<script>
var button = document.getElementById('myButton');
var url=button.getAttribute('data-url');
url+="&LocationID=" + locid;
button.setAttribute('data-url',url);
</script>
答案 2 :(得分:0)
您可以使用document.write
将值放在页面中,但是您无法在标记内写出来,您必须写出整个标记。例如:
<script>
document.write('<div data-url="@Url.Content("~/Catalogue_Items/ItemsActionViewPartial/")@Model.CatItemID?LocationID=' + locid + '&AsyncUpdateID=catalogue-view">');
</script>