代码之家  ›  专栏  ›  技术社区  ›  Pedro Lopes

使用Ajax调用调用MVC控制器方法不工作[重复]

  •  0
  • Pedro Lopes  · 技术社区  · 6 年前

    我一直想用 @Url.Action 在Ajax内部 url 在另一个外部 .JS 但不幸的是我没有运气。

    这是我的代码:

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

    此代码只在视图内部工作,而不在 Javascript externally . 我找到了一些可能的解决办法,但似乎与此不同。

    有别的方法吗 @URL.操作 在另一个 .Js 文件?

    0 回复  |  直到 6 年前
        1
  •  2
  •   user3559349    7 年前

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

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

    var url = @Url.Action("ClearData","Home");
    

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

    包括 data- 属性,例如,如果它是一个按钮单击事件,则

    <button data-url="@Url.Action("ClearData","Home")" id="mybutton">
    

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

    $('#mybutton').click(function() {
        var url = $(this).data('url');
        $.ajax({
            url: url,
            ....
    
        2
  •  0
  •   Thirupathi cst    6 年前

    如果您的JS代码在视图中

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

    这是工作

    当JS代码是单独的(外部文件)时 @Url.Action("ClearData","Home") 不是工作, 这种情况下,您必须写入总的URL或文件夹路径