#c# #asp.net-mvc #razor #owin #nancy
#c# #asp.net-mvc #razor #owin #нэнси
Вопрос:
У меня есть рабочее приложение, основанное на NancyFX (1.4.3) и Owin. Теперь я хочу удалить NancyFX и заменить (постепенно) на Mvc5. Эти маленькие шаги позволяют мне перенести весь проект на asp.net ядро в будущем. 🙂
Я могу передавать указанные NancyFX пути к MVC. Моя конфигурация запуска Owin выглядит следующим образом:
public void Configuration(IAppBuilder app)
{
app
.MapSignalR()
.UseNancy(o =>
{
o.PerformPassThrough = ctx =>
{
return ctx.Request.Path.StartsWith("/test");
};
})
.UseStageMarker(PipelineStage.MapHandler)
;
}
Благодаря этому я могу запускать свое приложение как обычно. Контроллер mvc будет обрабатывать только «тестовый» путь:
public class TestController : Controller
{
[Route("test")]
public ActionResult Index()
{
return View();
}
}
Моя основная проблема связана с Razor, который настроен следующим образом:
https://github.com/NancyFx/Nancy/wiki/Razor-View-Engine#letting-razor-know-what-base-type-your-views-use
и просмотр, отображаемый MVC, не удался, потому что:
The view at '~/Views/Home/Index.cshtml' must derive from WebViewPage, or WebViewPage<TModel>.
Как настроить и запускать представления из одной папки для MVC и второй папки для NancyFX?
Комментарии:
1. Не могли бы вы включить первые строки
Index.cshtml
в сообщение, пожалуйста? Вы пытались добавить@inherits System.Web.Mvc.WebViewPage
вIndex.cshtml
?
Ответ №1:
Страница просмотра должна быть унаследована от System.Web.Mvc.WebViewPage
. Убедитесь, что Index.cshtml
в него включена следующая строка:
@inherits System.Web.Mvc.WebViewPage
В проекте также должна быть ссылка на System.Web.Mvc
сборку.