0

У меня есть одностраничное приложение, написанное на JavaScript, и я использую API истории HTML5 для обработки URL-адресов на стороне клиента. Это означает, что любые URL-адреса, отправленные на сервер, должны заставить сервер отображать одну и ту же страницу.Маршрутизация для одностраничного приложения в ASP.NET Core

В ASP.NET MVC 5 Я написал этот код, чтобы сделать это:

public class RouteConfig 
{ 
    public static void RegisterRoutes(RouteCollection routes) 
    { 
     // ... 
     routes.Add(new Route("{*path}", new MyRouteHandler())); 
    } 
} 

public class MyRouteHandler : IRouteHandler 
{ 
    public IHttpHandler GetHttpHandler(RequestContext requestContext) 
    { 
     return WebPageHttpHandler.CreateFromVirtualPath("~/index.cshtml"); 
    } 
} 

Это работало очень хорошо. Независимо от того, какой URL-адрес получает сервер, он отображает index.cshtml. Обратите внимание, что я могу использовать файл .cshtml (в отличие от файла .html), что означает, что у меня может быть некоторый код C# для динамического изменения сценариев .js, добавления номеров версий в файлы .css и т. Д. Более того, мне не нужно было реализовывать контроллеры и представления и т. Д. Просто для рендеринга этого файла .cshtml.

Теперь мы переходим к вопросу: как вы это делаете в ASP.NET Core? Я читал документацию, но я не вижу, как визуализировать файл .cshtml без добавления классов контроллеров, просмотра папок и других ошибок.

Кто-нибудь знает эквивалентный код в ASP.NET Core?

+0

с новым годом http://stackoverflow.com/questions/40358179/use-asp-net-core-without-mvc – ergen

ответ

1

В настоящее время для запуска CSHTML-страницы «обычный способ» в ASP.NET Core требуется использование ASP.NET Core MVC.

Тем не менее, есть запланированная функция, которая работает над этим, несколько похожа на ASP.NET (неядерные) веб-страницы, где вы можете иметь автономные CSHTML-файлы. Эта функция отслеживается здесь: https://github.com/aspnet/Mvc/issues/494 (и в том, что касается именования новой функции, которая отслеживается здесь: https://github.com/aspnet/Mvc/issues/5208).

Существует также образец того, как визуализировать MVC-представление строки (например, для генерации сообщения электронной почты, отчета и т. Д.), И этот образец доступен здесь: https://github.com/aspnet/Entropy/tree/dev/samples/Mvc.RenderViewToString Но использовать этот образец в описываемом вами сценарии , вам нужно будет сделать дополнительную дополнительную сантехнику, чтобы подключить ее к своему собственному промежуточному программному обеспечению (а не много водопровода, немного!).

Стоит также отметить, что в вашем случае вы, вероятно, не хотите все URL, перейдя по этой одной точки зрения, потому что вы все еще нуждаются в статические файлы промежуточного уровня запуска первой для обработки CSS, JS, изображения и другие статические содержание. Предположительно, вы просто хотите, чтобы все другие URL-адреса, чтобы перейти к этому динамическому виду.

Смежные вопросы