Маршрутизация терпит неудачу странно, и я не могу, кажется, точно определить проблему - PullRequest
0 голосов
/ 09 мая 2019

У меня есть 3 ссылки на моем веб-сайте, которые генерируются, как показано ниже, с использованием url.action ()

<a href="/ViewAd/421/Honda-Accord-2.4-Executive-Automatic" >

<a href="/ViewAd/420/Renault-Sandero-900t-Dynamique" >

<a href="/ViewAd/419/Audi-Rs5-2.9-Tfsi-Quattro-Tiptronic" >

Как видите, ссылки точно такие же, за исключением идентификаторов и описаний, которыеразные.Как ни странно, единственное, что работает правильно, это 2-е объявление, если я нажимаю на 1-е или 3-е объявление, запрос не выполняется с ошибкой 404, также при локальной отладке 1-го и 3-го объявления даже не достигают точки останова на моем действии контроллерасогласно ниже.В чем может быть проблема?

У меня включена атрибутная маршрутизация, и вот как выглядит действие моего контроллера

[Route("ViewAd/{adID}/{desc}")]
public ActionResult ViewSingleAd(int adID, string desc)
{
   // Code removed for brevity

   return View();
}

Мой RouteConfig.cs выглядит следующим образом

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

            routes.MapMvcAttributeRoutes();

            routes.MapRoute(
                name: "Error",
                url:"error/{action}/{id}",
                defaults: new { controller = "Home", action = "Index"/*, id = ""*/ }
            );

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

        }
    }
}

1 Ответ

0 голосов
/ 09 мая 2019

Это может быть связано с тем, что IIS пытается найти статический ресурс на сервере из-за точки.

Добавьте следующую строку в web.config вашего сайта в элементе system.webServer / handlers:

<add name="ApiURIs-ISAPI-Integrated-4.0"
     path="/people/*"
     verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS"
     type="System.Web.Handlers.TransferRequestHandler"
     preCondition="integratedMode,runtimeVersionv4.0" />

Отметьте это и это , чтобы узнать больше вариантов решения этой проблемы.

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