jQuery - 本地机器的Url.Action路径问题

时间:2014-02-17 16:02:03

标签: c# jquery asp.net-mvc-4

问题:我已经把这个问题搞砸了几天了,但仍然没有找到任何解决方案。问题是,当我在我的本地机器上时,我正在尝试使用以下代码:

$.post('@Url.Action("TestAction", "Home")', function () { alert("Success"); }).fail(function () { alert("Error"); });

Home是我的控制器的名称 - HomeController。我指定了控制器名称,因为我的解决方案中有多个控制器。

[HttpPost]
public ActionResult TestAction()
{
    return View();
}

我这样做是为了看看我的代码是否会完全触及此方法,但事实并非如此。

但是,如果我开始一个新项目并尝试它,这段代码确实有效。我需要它来处理我当前的项目,并且启动它不是一个选项,因为它适用于其他计算机,而不是我的,它甚至可以在网络上工作。

上面的代码给出了路径:TestSolution/Home/TestAction这是正确的,但代码永远不会点击TestAction函数,因此显示“错误”警告框而不是“成功”。它确实在其他计算机和网络上显示“成功”,而不是我的计算机。

因此,对于我的计算机,我一直在使用以下代码(仅适用于我的计算机而不适用于其他人或网络,这是预期的):

$.post('@Url.Action("Home/TestAction")', function () { alert("Success"); }).fail(function () { alert("Error"); }

此代码为我提供了路径:TestSolution/Home/Home/TestAction这是不正确的,但是命中TestAction函数并仅为我的计算机显示“成功”警报框,运行此命令的其他计算机将显示“错误”警报框。

注意:我还尝试过以下代码,其行为与第一个类似:

$.post('@Url.Action("TestAction")', function () { alert("Success"); }).fail(function () { alert("Error"); });

此路径为:TestSolution/Home/TestAction

1 个答案:

答案 0 :(得分:4)

鉴于它除了你的计算机以外的其他任何计算机都可以正常工作。您声明,当您发送到的网址为TestSolution/Home/Home/TestAction时,它会起作用。您是否检查了网站/虚拟目录的IIS配置,以确保没有额外的Home

您可能还想查看Phil Haack的路由调试器(http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx),看看是否能为您提供有关本地计算机上发生情况的任何其他线索。