从单独的 javascript 文件中调用 ASP.NET MVC 控制器操作

Call ASP.NET MVC controller action from seperate javascript file

本文关键字:NET ASP MVC 控制器 操作 调用 单独 javascript 文件      更新时间:2023-09-26

我应该使用什么URL语法来确保控制器操作在jQuery ajax调用中得到正确解析? 例如,在 HomeController 上调用 Method1 的以下语法在 Visual Studio 中运行站点时有效:

 $.ajax({
             type: 'GET',
             url: "Home/Method1?lparam1=" + 1+ "&param2=" + 2,  // my problem
             dataType: 'json',
             cache: false,             
             success: function(){ alert("success");}
         });

但是当我在 IIS 上部署站点时,我收到 HTTP 404 告诉我无法解析控制器操作。

蒂亚。

我会让MVC为您生成链接:

url: '@Url.Action("Method1", "Home")?lparam1=' + encodeURIComponent(1) + ... 

如果您的 JS 在外部文件中,您可以在页面中使用 URL 设置一个全局变量,并让外部文件读取它。此外,如果您的 VS 和 IIS URL 不同,您可以在项目属性中为站点提供一个虚拟目录名称,以便它与您的 IIS 目录匹配,或者更好的是,让您的项目使用 IIS 而不是 Cassini(内置 Web 服务器)。

只需将 url 行更改为:

url: "/Home/Method1?lparam1=" + 1+ "&param2=" + 2,