Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Umbraco路线与普通mvc路线并行_C#_Asp.net Mvc_Asp.net Mvc 5_Umbraco_Umbraco7 - Fatal编程技术网

C# 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

我已经通过nuget在一个新的mvc5项目上安装了umbraco,我有一个普通的MVC控制器

 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