asp.net-mvc – Sitecore和ASP.net MVC
我们开始一个新的项目,使用sitecore作为我们的CMS。我正在考虑使用Sitecore作为内容创作工具,并使用ASP.net MVC在内容交付(CDA)方面与Sitecore。很愿意听到你的想法和想法。
有没有人试过这个? 是sitecore和MVC竞争还是补充技术? 欢迎任何建筑理念。 解决方法
对于某些情况,合并两者可能有巨大的好处。 MVC不适合内容驱动的网站。然而,具有结构化流和多个数据呈现的web应用程序从中获益良多。当涉及多个数据表示时,Sitecore有一些限制 – 您只能在一个项目上定义一组设计详细信息。如果您没有对所见即所得编辑或简单的一键预览的要求,则可以使用Sitecore作为数据存储库,并利用来自其管道的一些Context值(如语言)。
需要对Sitecore HTTP管道进行几项修改才能使此工作: 1)如果使用IIS6中的aspx扩展来获取ASP.NET处理MVC请求(例如/Controller.aspx/Action),修复Sitecore的FilePath解析(有一个错误,Sitecore如何解析FilePath,这将导致路径得到切碎的)。 要解决这个问题,请在httpRequestBegin管道的开头放置一个新的处理器。 public class MvcFixHttpProcessor : Sitecore.Pipelines.HttpRequest.HttpRequestProcessor { public override void Process(Sitecore.Pipelines.HttpRequest.HttpRequestArgs args) { //when using a path such as /Controller.aspx/Blahblahblah,Sitecore's parsing of FilePath can break if Blahblahblah is too long RouteData routeData = RouteTable.Routes.GetRouteData(new HttpContextWrapper(args.Context)); if (routeData != null) { args.Url.FilePath = args.Context.Request.Url.LocalPath; } } } (编辑9/13/2011:我有一段时间没有使用上面的修复)。 2)告诉Sitecore忽略路由到ASP.NET MVC的URL 要完成此操作,请在ItemResolver后的httpRequestBegin管道中放置一个新处理器。 public class SystemWebRoutingResolver : Sitecore.Pipelines.HttpRequest.HttpRequestProcessor { public override void Process(Sitecore.Pipelines.HttpRequest.HttpRequestArgs args) { RouteData routeData = RouteTable.Routes.GetRouteData(new HttpContextWrapper(args.Context)); if (routeData != null) { args.AbortPipeline(); } } } 如果您在Sitecore网址中使用语言,则需要添加一些自定义逻辑,将Sitecore链接生成与MVC ActionLink生成相结合,以确保语言添加到MVC网址的开头。然而,对于上面的管道修改,向URL添加语言应该没有对MVC路由的副作用(因为Sitecore在读取语言之后重写URL)。 再次,此方法仅对某些类型的应用程序有用。在这些情况下,Sitecore为您的模型提供了一个很好的数据层。查看创建自定义项包装器以基于Sitecore项目创建强类型域对象。 (编辑9/13/2011:自定义项目生成器非常适合这个http://blog.velir.com/index.php/2010/10/19/custom-item-generator/) 最好的运气。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 如何在selectindexchanged下拉列表后避免页面刷
- asp.net-mvc – 使用ASP.New MVC 4 Web Api进行授权过滤依赖
- 调试 ASP.NET Core 2.0 源代码
- asp.net-mvc – 来自EDMX文件的MVC模型 – 为其添加自定义注
- asp.net-mvc – S#arp架构与直接IOC NHibernate MVC
- asp.net-mvc – 在布局页面上渲染脚本时出现奇怪错误
- asp.net-mvc – 如何实现在jqgrid搜索?
- entity-framework-4 – ASP.NET MVC 3如何在Create视图上为
- asp.net – iis 7.0,模块订单更改
- ASP.NET 2.0或3.5?