IIS6 javascript路由问题

时间:2009-12-04 00:02:09

标签: javascript asp.net asp.net-mvc iis-6 routes

我目前在视图中有以下内容

function loadData() {
     var url = "/Testx.mvc/GetData";
     var id = "111111";
     var format = "html";

     $.ajax({
         url: url,
         type: "POST",
         dataType: format,
         data: "id=" + id,
         success: populateResults
     });
 }

 function populateResults(result) {
     $('#results').html(result);
 }

我还有一个名为TestxController的控制器,它带有一个名为GetData(int?id)的动作方法。 现在上面的ajax调用适用于Visual Studios 2008的内置开发服务器,但是当我将其切换为使用IIS webserver时,它不会。似乎没有找到路线,因为我尝试在GetData上设置一个断点,但它甚至没有到达那里。 有谁知道我需要做些什么来解决这个问题?

编辑:我也尝试过在http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx讨论的通配符映射方法,它运行得很好。 (当然我不得不从网址中删除.mvc) 有没有办法让这个与.mvc扩展一起使用?

由于

2 个答案:

答案 0 :(得分:1)

Testx.mvc是否位于您的网络服务器的根目录下?如果您的应用程序在IIS上的虚拟目录中运行,那么正确的路径将类似于/YourApp/Testx.mvc/GetData

Visual Studio内置的Web服务器可能会将Testx.mvc置于root,这就是它在VS中工作的原因。

如果是这种情况,请尝试使用相对路径Testx.mvc/GetData而不是/Testx.mvc/GetData

答案 1 :(得分:0)

是否有称为'回调'的实际功能?只是问,因为看起来你可能意味着要成功回应'populateResults'。

尝试这个:

$.ajax({
     url: url,
     type: "POST",
     dataType: format,
     data: "id=" + id,
     success: function(results){$('#results').html(result)}
 });

您是否检查过您的ISS设置,看它是否支持POST操作?它可能只是指定GET操作...请参阅http://haacked.com/images/haacked_com/WindowsLiveWriter/07de283cb368_B754/application-mappings_3.png