我目前在视图中有以下内容
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扩展一起使用?
由于
答案 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