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

时间:2012-05-13 22:39:59

标签: javascript asp.net-mvc-3 jquery controller

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

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

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

TIA。

2 个答案:

答案 0 :(得分:1)

我会让MVC为你生成链接:

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

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

答案 1 :(得分:0)

只需将网址行更改为:

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