我已经创建了一些包含路由部分的自定义内容类型,这样我的内容管理员就可以编辑项目的 slugs。我没有运气配置一条路线,该路线将使我自己的 Controller 能够为这些项目的请求提供服务。
核心 Routable 模块中 ItemController 路径的路由优先级为 10。我尝试创建一个使用 IRouteConstraint 的路由,类似于 Blog 模块实现我想做的事情的方式,优先级较低但仍然没有运气。
如果我使我的 URL 以/结尾,那么我的自定义路由将被激活,因为它与我的内容项的路径不匹配。这不是理想的解决方案。我不明白为什么它不会在属于 Routable 模块的自定义路由之前发现我的自定义路由。
任何帮助将不胜感激,在此先感谢。
更新:
这是我的 IRouteProvider 实现中的 GetRoutes 方法:
public IEnumerable<RouteDescriptor> GetRoutes()
{
return new[] {
new RouteDescriptor
{
Priority = 0,
Route = new Route(
"Admin/Jugganort/{controller}/{action}/{id}",
new RouteValueDictionary {
{"area", "Jugganort"},
{"controller", "Area"},
{"action", "List"}
},
new RouteValueDictionary(),
new RouteValueDictionary {
{"area", "Jugganort"}
},
new MvcRouteHandler())
},
new RouteDescriptor
{
Priority = 9,
Route = new Route(
"{location}/{merchant}/{promotion}",
new RouteValueDictionary {
{"area", "Jugganort"},
{"controller", "Home"},
{"action", "Index"},
{"merchant", UrlParameter.Optional},
{"promotion", UrlParameter.Optional}
},
new RouteValueDictionary {
{ "location", _routeConstraint }
},
new RouteValueDictionary {
{"area", "Jugganort"}
},
new MvcRouteHandler())
}
};
}
_routeConstraint 是 IRouteConstraint 的一个简单实现,它只是为 route 的位置查找“newcaSTLe”的硬编码值。
是我对 RoutePart 的理解不正确吗?这些项目是否总是必须从 Routable 模块的 ItemController 提供?用户轮流渲染自定义形状是我唯一的选择吗?
Orchard 论坛将是我的下一个访问点。再次感谢您提供的任何帮助。
最佳答案
当然,您也可以通过自己的 Controller 提供这些项目。唯一需要的是一条可以到达您的 Controller 的路线。然后,您几乎可以返回任何您想要的东西:)
看起来您的 URL 正在与其他一些路由匹配。如果您想覆盖默认路由并确保首先比较您的 URL,您应该指定 更高的优先级(例如 11)。 Orchard.Core.Routable.Routes 中的 catch-all 路由的优先级为 10,因此甚至会捕获与您的路由匹配的 URL。
您没有在第一条 route 为 id 提供默认值 - 这也会带来问题。如果您没有在 URL 中明确指定 id,则不会进行匹配。
顺便说一句,Area 是第一条 route 默认 Controller 的专有名称,还是只是一个拼写错误?
关于c# - Orchard cms路由问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6493026/
Rails2.3可以选择随时使用RouteSet#add_configuration_file添加更多路由。是否可以在Rails3项目中做同样的事情? 最佳答案 在config/application.rb中:config.paths.config.routes在Rails3.2(也可能是Rails3.1)中,使用:config.paths["config/routes"] 关于ruby-on-rails-Rails3中的多个路由文件,我们在StackOverflow上找到一个类似的问题
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po
尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub
我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search
由于fast-stemmer的问题,我很难安装我想要的任何rubygem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=
当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub
如何在ruby中调用C#dll? 最佳答案 我能想到几种可能性:为您的DLL编写(或找人编写)一个COM包装器,如果它还没有,则使用Ruby的WIN32OLE库来调用它;看看RubyCLR,其中一位作者是JohnLam,他继续在Microsoft从事IronRuby方面的工作。(估计不会再维护了,可能不支持.Net2.0以上的版本);正如其他地方已经提到的,看看使用IronRuby,如果这是您的技术选择。有一个主题是here.请注意,最后一篇文章实际上来自JohnLam(看起来像是2009年3月),他似乎很自在地断言RubyCL
我正在尝试在Ruby中复制Convert.ToBase64String()行为。这是我的C#代码:varsha1=newSHA1CryptoServiceProvider();varpasswordBytes=Encoding.UTF8.GetBytes("password");varpasswordHash=sha1.ComputeHash(passwordBytes);returnConvert.ToBase64String(passwordHash);//returns"W6ph5Mm5Pz8GgiULbPgzG37mj9g="当我在Ruby中尝试同样的事情时,我得到了相同sha
我没有找到太多关于如何执行此操作的信息,尽管有很多关于如何使用像这样的redirect_to将参数传递给重定向的建议:action=>'something',:controller=>'something'在我的应用程序中,我在路由文件中有以下内容match'profile'=>'User#show'我的表演Action是这样的defshow@user=User.find(params[:user])@title=@user.first_nameend重定向发生在同一个用户Controller中,就像这样defregister@title="Registration"@user=Use
我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www