1

Короче говоря: мы пытаемся настроить Durandal SPA на нашем ранее существующем веб-сайте ASP.NET MVC. Что мы собираемся сделать, это возможность скрыть SPA за флагом функции, где мы можем включить флаг SPA и соответствующим образом настроить наш сайт.Обмен между маршрутированием MVC и маршрутированием Durandal

У нас есть эта часть работы. Однако нам нужно было префикс всех наших маршрутов с помощью «/ app #», а затем наложение на контроллер/действие. Например, «Индекс» станет «индексом приложения» в URL-адресе. Маршрутизация Durandal отлично подходит для этого подхода - он вытягивает необходимые виды.

Мы хотели бы использовать одни и те же маршруты, вместо того чтобы префикс каждого из них с помощью «app #» - по существу использовать маршрутизацию Durandal, когда флаг SPA включен, в противном случае используется обычная маршрутизация MVC, но сохраняйте маршруты одинаковыми.

Любые предложения?

+0

Вы используете MVC? и какая версия? –

ответ

0

Если вы знаете о модулях требует конвенции о Дюрандала, будет очень просто понять, нужно просто вставить эту конфигурацию в Web.config:

Web.config

<handlers> 
     <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> 
     <remove name="OPTIONSVerbHandler" /> 
     <remove name="TRACEVerbHandler" /> 
     <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 
    <add name="HtmlFileToMvcHandler" path="App/views/*/*.html" verb="GET" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 
    </handlers> 

Обратите внимание, что я создал обработчик «HtmlFileToMvcHandler» с этим шаблоном «App/views/*/*. Html» Я использовал этот шаблон, потому что мой CRUD-соглашение, и с этим я сказал обработчику MVC, что al l запросов, которые поставляются с этим шаблоном, будет обработано. Но теперь вам нужно обработать запросы, которые придут. Таким образом, вы можете использовать RouteAttribute так:

[Route("App/View/Home/index.html")] 
    public ActionResult Index() 
    { 
     return View(); 
    } 

или карту, что маршрут в маршрутной конфигурации, как это:

routes.MapRoute("Name", 
      "App/views/{controller}/{action}.html"); 

Мой английский будет лучше в следующий раз XD