ASP.net MVC 5 маршрутизация: ошибка ajax при загрузке базового URL, но работает при добавлении home / Index в конце - PullRequest
0 голосов
/ 01 февраля 2019

Базовый URL для моего проекта не будет работать без / Home в конце, он возвращает ошибку ajax.Как я могу убедиться, что если базовый URL введен без Home / Index, он будет работать без возврата ошибки?

Я вижу, что на стороне сервера GetTaskLog возвращает ошибку 404 not found.GetTaskLog - это функция в моем домашнем контроллере, которая используется для извлечения данных из базы данных.GetTaskLog прекрасно работает, когда я добавляю / home к URL.Он извлекает данные и ошибок нет.

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

    routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }

Ajax:

"ajax": {
            "url": "../Home/GetTaskLog",
            "type": 'POST',
            "content-type": "application/json; charset=utf-8",
            "processData": false,
            "dataType": "json",
            "headers": "headers",
            "data": "window.JSON.stringify(obj)",
            //"headers": { "__RequestVerificationToken": $('input[name=__RequestVerificationToken]').val() },
            //"data": { "__RequestVerificationToken": $('input[name=__RequestVerificationToken]').val() },
            "traditional": true,
            "dataSrc": function (data) {
                return JSON.parse(data);
            },
        },

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Решением моей проблемы было изменение URL-адреса ajax на:

 "ajax": {
             "url": "/WTM/Home/GetTaskLog"
         }
0 голосов
/ 01 февраля 2019

Значения по умолчанию в route.MapRoute говорит, что если у приложения нет ничего по URL, например, {controller} / {action} / {id}, оно вернется в Home / Index.Поэтому вам нужно изменить параметр по умолчанию

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...