在 Ajax Url 中使用 @url.action 的 .JS 文件

Vij*_*vch 2 .net asp.net-mvc-4

我一直试图在另一个外部文件中使用@Url.ActionAjax url.JS但不幸的是我没有走运。

这是我的代码:

 $.ajax({
      type: 'post',
      url: "@Url.Action("ClearData","Home")",
      success: function () {

       }
     });
Run Code Online (Sandbox Code Playgroud)

此代码仅在 View 内部工作,而在Javascript externally. 我已经搜索了一些可能的解决方案,但似乎与此不同。

有没有其他方法可以@Url.Action在另一个.Js文件中使用?

小智 6

@Url.Action()是剃刀(服务器端)代码,不会在外部文件中解析。选项包括

在主文件中声明一个全局变量,比如

var url = @Url.Action("ClearData","Home");
Run Code Online (Sandbox Code Playgroud)

然后在外部脚本中使用url: urlajax 调用

data-在您处理的元素中包含一个属性,例如,如果它是一个按钮单击事件,则

<button data-url="@Url.Action("ClearData","Home")" id="mybutton">
Run Code Online (Sandbox Code Playgroud)

然后在外部文件中读取该值,例如

$('#mybutton').click(function() {
    var url = $(this).data('url');
    $.ajax({
        url: url,
        ....
Run Code Online (Sandbox Code Playgroud)