Вопрос по jquery, asp.net-mvc – Вызов JQuery Ajax выдает ошибку 404 «Ресурс не найден», но нормальный URL-вызов в порядке

7

У меня странная проблема при использовании вызова JQuery в моем проекте ASP.NET MVC. Я обнаружил, что вызов Ajax дает 404 (ошибка ресурса не найдена). Но когда я использую обычный URL-вызов GET, я могу без проблем вызвать сервер. Есть идеи, почему это так?

Это мой код ASP.NET MVC

<code>public class ViewRecordController: Controller
{
  public JSONResult GetSoftwareChoice(string username)
  {
     return Json(username);
  }
}
</code>

Это мой код JQuery:

<code>$(function() {
$("#username").click(function() {
        $.getJSON("ViewRecord/GetSoftwareChoice", {username:'123'},
    function(data) {
        alert(data);
    });
    });
});
</code>

Выше JQuery выдает ошибку 404. Видимо,ViewRecord/GetSoftwareChoiceа сервере AJAX @ не найден на сервере.

Но если я наберу это в моем веб-браузере:

<code>http://myapp/ViewRecord/GetSoftwareChoice?username=123
</code>

тогда нет проблем.

Это действительно странно.

Просто, если тебе интересно, это мой маршрут:

<code>public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        "Default",                                              // Route name
        "{controller}/{action}/{id}",                           // URL with parameters
        new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
    );

}
</code>

Редактировать: я вхожу в свой код, и обнаружил, что URL-адресViewRecord/GetSoftwareChoice?username=123.

Связанный вопрос:Выбор элемента внутри формы не работает в JQuery

Ваш Ответ

1   ответ
8

$(function() {
    $("#username").click(function() {
        var url = '<%= UrlHelper.Action("GetSoftwareChoice", "ViewRecord") %>';
        $.getJSON(url, {username: '123'}, function(data) {
            alert(data);
        });
    });
});

Похожие вопросы