2014-02-17 3 views
0

Вопрос: Я уже давно пару раз столкнулся с этой проблемой и до сих пор не нашел для нее никакого решения. Вопрос в том, когда я нахожусь на моей локальной машине я пытаюсь использовать следующий код:jQuery - Url.Action Path Issue для локального компьютера

$.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

+0

Возможный дубликат [jQuery - Url.Action LOCAL Machine Pathing Issue] (http://stackoverflow.com/questions/21780553/jquery-url-action-local-machine-pathing-issue) – Verkion

ответ

4

Учитывая, что она отлично работает на любом другом компьютере, кроме твоих, которые будут похоже, указывают на проблему с конфигурацией на вашем компьютере. Вы указываете, что когда URL, который вы отправляете, равен TestSolution/Home/Home/TestAction, тогда он работает. Вы проверили конфигурацию IIS для веб-сайта/виртуального каталога, чтобы убедиться, что у вас нет дополнительного Home?

Возможно, вы также захотите проверить отладчик маршрута Фила Хаака (http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx), чтобы узнать, даст ли он дополнительные подсказки относительно того, что происходит на вашем локальном компьютере.

+0

Спасибо, человек, у меня был Главная папка внутри моего каталога TestSolution. Таким образом, он пытался перейти в TestSolution/Home (папка)/Home (контроллер)/TestAction вместо TestSolution/Home (контроллер)/TestAction. – JohnAtrik

Смежные вопросы