Routing 添加模块的Orchard问题
我和乌节还有一个问题。 我创建了一个新模块——HelloWorld(如Orchard网站教程中所示) 我所做的一件不同的事情是,我将我的项目移到果园之外,并在添加此模块项目的地方创建新的解决方案。我设置了post build,以便通过robocopy将我的项目复制到Orchard.Web\Modules:Routing 添加模块的Orchard问题,routing,orchardcms,Routing,Orchardcms,我和乌节还有一个问题。 我创建了一个新模块——HelloWorld(如Orchard网站教程中所示) 我所做的一件不同的事情是,我将我的项目移到果园之外,并在添加此模块项目的地方创建新的解决方案。我设置了post build,以便通过robocopy将我的项目复制到Orchard.Web\Modules: robocopy "$(ProjectDir)..\$(ProjectName)" "$(ProjectDir)..\..\Orchard\src\Orchard.Web\Modules\
robocopy "$(ProjectDir)..\$(ProjectName)" "$(ProjectDir)..\..\Orchard\src\Orchard.Web\Modules\HelloWorld" /XO /NJH /E
if errorlevel 4 goto Fail
if errorlevel 0 goto End
:Fail
echo FILECOPY for $(ProjectName) FAILED
exit 1
:End
echo FILECOPY for $(ProjectName) COMPLETED OK
exit 0
在我的模块被复制后,我尝试使用我的模块访问页面,并得到404响应
在Routes.cs我有
public IEnumerable<RouteDescriptor> GetRoutes()
{
return new[]
{
new RouteDescriptor
{
Priority = 20,
Route =
new Route(
"HelloWorld",
new RouteValueDictionary
{
{ "area", "HelloWorld" }, { "controller", "Home" }, { "action", "Index" }
},
new RouteValueDictionary(),
new RouteValueDictionary { { "area", "HelloWorld" } },
new MvcRouteHandler())
}
};
}
public IEnumerable GetRoutes()
{
返回新的[]
{
新路由描述符
{
优先级=20,
路线=
新路线(
“HelloWorld”,
新RouteValueDictionary
{
{“区域”、“HelloWorld”}、{“控制器”、“主页”}、{“操作”、“索引”}
},
新建RouteValueDictionary(),
新的RouteValueDictionary{{“area”,“HelloWorld”},
新的MvcRouteHandler())
}
};
}
在Orchard.Web\Modules\HelloWorld中打开Routes.cs并进行任何更改(例如:添加空间或更改注释)和保存Routes.cs后,我的模块开始工作。
有人知道为什么我的模块在复制到模块文件夹后不能工作吗?动态编译。为什么要把模块移出网站,让一切变得更复杂呢?是的,我知道,但我认为在我复制项目并进行更新后,Orchard会被动态编译。我将我的项目转移到Orchard解决方案之外,因为我专注于开发我的模块,而对于我来说,vs处理一个项目的速度比处理Orchard的60%要快。这不需要将其取出。直接打开该项目,或者创建一个单独的解决方案。真的,没有很好的理由这么做。同意伯特朗的观点。C+P的果园SLN,并删除项目,你不想在那里,这将使一切变得容易一百万倍。