C# Umbraco路线与普通mvc路线并行
我已经通过nuget在一个新的mvc5项目上安装了umbraco,我有一个普通的MVC控制器C# Umbraco路线与普通mvc路线并行,c#,asp.net-mvc,asp.net-mvc-5,umbraco,umbraco7,C#,Asp.net Mvc,Asp.net Mvc 5,Umbraco,Umbraco7,我已经通过nuget在一个新的mvc5项目上安装了umbraco,我有一个普通的MVC控制器 public class HomeController : Controller { public ActionResult Dashboard(RenderModel model, int? Id) { return Content("ok"); } } 问题是当我尝试进入/Home/Das
public class HomeController : Controller
{
public ActionResult Dashboard(RenderModel model, int? Id)
{
return Content("ok");
}
}
问题是当我尝试进入/Home/Dashboard时
我收到以下错误:没有与url“/home/dashboard”匹配的umbraco文档。
我怎样才能让我的mvc控制器与我的umbraco共存。我不想让umbraco文档和模板路由只是让我的普通mvc控制器像什么都没有发生一样工作。我打算稍后让contentby Id在我的mvc控制器中使用它。umbraco不会使用简单的控制器,你必须这样做使用SurfaceController继承。因为它与这样的曲面控制器一起工作
public class AccountController : SurfaceController
{
public ActionResult Dashboard(RenderModel model, int? Id)
{
return Content("ok");
}
}
您可以使用以下URL调用此方法
/umbraco/surface/{controllername}/{action}/{id}
见文件:
Umbraco无法使用简单的控制器,您必须使用SurfaceController继承该控制器。因为它与这样的曲面控制器一起工作
public class AccountController : SurfaceController
{
public ActionResult Dashboard(RenderModel model, int? Id)
{
return Content("ok");
}
}
您可以使用以下URL调用此方法
/umbraco/surface/{controllername}/{action}/{id}
见文件:
您仍然可以在使用Umbraco surfacecontroller的同时使用标准MVC控制器,您只需记住Umbraco正在处理路由,因此您必须手动执行路由:
公共类ApplicationEventHandler:IAApplicationEventHandler
{
已启动应用程序上的公共无效(UmbracoApplicationBase umbracoApplication、ApplicationContext ApplicationContext)
{
RegisterCustomRoutes();
}
专用静态无效注册表自定义路由()
{
//这只是一个示例,请修改以适合您的控制器和操作
System.Web.Routing.RouteTable.Routes.MapRoute(
名称:“WhateverController”,
url:“任意/{action}/{id}”,
默认值:new{controller=“Whatever”,action=“DoTheThing”,id=urlparmeter.Optional});
}
}
然后,
WhateverController.DoTheThing(int-id)
应该可以在/whatever/DoTheThing/1访问,就像MVC通常使用的那样。不幸的是,如果您有许多控制器和操作,则可能需要进行大量的设置,甚至需要进行更多的维护,因此您可能需要找到一种更简单的方法批量生成这些路由。您仍然可以在使用Umbraco surfacecontroller的同时使用标准MVC控制器,您只需记住,Umbraco正在处理路由,因此您必须手动执行路由:
公共类ApplicationEventHandler:IAApplicationEventHandler
{
已启动应用程序上的公共无效(UmbracoApplicationBase umbracoApplication、ApplicationContext ApplicationContext)
{
RegisterCustomRoutes();
}
专用静态无效注册表自定义路由()
{
//这只是一个示例,请修改以适合您的控制器和操作
System.Web.Routing.RouteTable.Routes.MapRoute(
名称:“WhateverController”,
url:“任意/{action}/{id}”,
默认值:new{controller=“Whatever”,action=“DoTheThing”,id=urlparmeter.Optional});
}
}
然后,
WhateverController.DoTheThing(int-id)
应该可以在/whatever/DoTheThing/1访问,就像MVC通常使用的那样。不幸的是,如果您有许多控制器和操作,则可能需要进行大量的设置,甚至需要进行更多的维护,因此您可能需要找到一种更简单的方法来批量生成这些路由。您需要Umbraco做什么?翁布拉科有自己的路线。您可以在此处阅读更多信息:。你可以劫持Umbraco路线并定义你的自定义路线。因为我有一个网站,我将Umbraco添加到其中,我希望我的旧路线能够正常运行。你这里有所有的:你需要Umbraco做什么?翁布拉科有自己的路线。您可以在此处阅读更多信息:。你可以劫持Umbraco路线,并定义你的自定义路线。因为我有一个网站,我将Umbraco添加到其中,我希望我的旧路线能够正常运行。你这里都有:这并不能真正回答问题。OP希望使用与mvc控制器的自定义路由混合的Umbraco路由。那么您应该使用简单的MVC5项目,为什么需要Umbraco?请参阅开篇文章上的上述评论。海报希望在现有的mvc应用程序中包含Umbraco,但这并不能真正回答问题。OP希望使用与mvc控制器的自定义路由混合的Umbraco路由。那么您应该使用简单的MVC5项目,为什么需要Umbraco?请参阅开篇文章上的上述评论。海报希望在现有mvc应用程序中包含Umbraco