У меня есть приложение MVC5.Когда я запускаю его на своем локальном хосте, все работает без ошибок.
Когда я публикую свое приложение, я переношу его в Windows Server 2016, я помещаю файлы в wwwroot в папку IIS и связываю все, чтобы создать новый сайт в IIS.Затем я запускаю веб-сайт, и он работает.Я заставляю свой код JavaScript работать, но когда я запускаю и запускаю методы «ajax», я получаю ошибку 404, и в функции я не могу найти действие моего контроллера, поэтому метод будет работать.
Вот моя действительная ошибка:
xxx.xxx.xx x.219 / Parts / DoPartBookFunc? Bookval = 8 404 (Не найдено), Не удалось загрузить ресурс: серверответил со статусом 404 (Не найдено)
Я исследовал и пробовал кучу разных вещей, но пока не повезло.Некоторые вещи, которые я пробовал:
@Url.action(“”,””)
- добавление ~ впереди
- добавление ../ впереди
- создание глобального файла
и многое другое.Если кто-то знает, как это исправить, это было бы очень признательно.
$("#PartBook").on("change", function () {
var selectV = $(this).val();
var selectT = $(this).text();
$.ajax({
url: '/Parts/DoPartBookFunc',
type: 'GET',
dataType: 'json',
data: { bookval: selectV },
//contentType: 'application/json; charset=utf-8',
success: function (data) {
//alert("s" + data.PartNextNumber);
Вот мое решение всем!
Изменил мой URL-адрес ajax () на:
url: "@Url.Action("DoPartBookFunc", "Parts")",
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
/* Newly Added */
routes.MapRoute(
name: "AddNewControllerName",
url: "AddNewControllerName/{action}/{id}",
defaults: new { controller = "AddNewControllerName", action = "Index", id = UrlParameter.Optional }
);
/* Old Route */
routes.MapRoute(
name: "mass",
url: "{action}/{id}",
defaults: new { controller = "Parts", action = "Index", id = UrlParameter.Optional }
);