Использование точки в URL - PullRequest
0 голосов
/ 15 мая 2018

У меня есть следующий маршрут в RouteConfig.cs:

routes.MapRoute(
    "MyLegacyRoute",
    "Content/bootstrap.css",
    new { controller = "Legacy", action = "GetLegacyUrl", legacyUrl = "someUrl" });

~/Content/bootstrap.css существует, и вместо отображения его содержимого при переходе к http://localhost:27541/Content/bootstrap.css я хочу выполнить действие GetLegacyUrl вLegacy контроллер.

Я добавил это в Web.config:

<system.webServer>
    <handlers>
      <add name="UrlRoutingHandler" path="/Content/*" verb="GET" type="System.Web.Routing.UrlRoutingHandler" />
...

и

<system.web>
<httpRuntime targetFramework="4.5" relaxedUrlToFileSystemMapping="true"/>
...

Однако, когда я получаю доступ к http://localhost:27541/Content/bootstrap.css, я получаю этоошибка:

Ошибка сервера в приложении '/'.Невозможно создать абстрактный класс.Описание: во время выполнения текущего веб-запроса произошло необработанное исключение.Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: System.MissingMethodException: Невозможно создать абстрактный класс.

Мой контроллер выглядит следующим образом:

public class LegacyController : Controller
{
    public ActionResult GetLegacyUrl(string legacyUrl)
    {
        return View((object)legacyUrl);
    }
}

Мое представление (GetLegacyUrl.cshtml)выглядит следующим образом:

@model string
@{
    ViewBag.Title = "GetLegacyUrl";
    Layout = null;
}

<h2>GetLegacyUrl</h2>
The URL requested was @Model

Я пытаюсь сделать это только для того, чтобы узнать больше о маршрутизации.

Что я могу сделать, чтобы успешно использовать этот маршрут?

1 Ответ

0 голосов
/ 16 мая 2018

Я заставил его работать, поместив это в RouteConfig.cs:

routes.RouteExistingFiles = true;

И сделав значение preCondition пустой строкой:

<add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />

в этом файле:C:\Users\user.name\Documents\IISExpress\config\applicationhost.config

Я нашел ответ на 16-й странице pg 99/115 в книге Adam Freeman Pro ASP.NET MVC5.

Я также удалил обработчик, добавленный в Web.config, и удалилrelaxedUrlToFileSystemMapping="true", так как это не работает в MVC5.

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