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-mvc – 在ASP.NET MVC中使用控制器和用户控件设置活
- asp.net-mvc-3 – 在MVC3中禁用HTML.TextAreaFor
- .net – IAuthenticationFilter.OnAuthenticationChallenge
- asp.net – 从web.config中膨胀时,SmtpClient不会进行身份验
- 在ASP.NET菜单控件中设置item.selected
- asp.net-mvc – MVC帮助 – 使用@URL的图像src?
- 如何从asp.net中的javascript调用codebehind函数?
- asp.net – 多租户,或不是多租户
- asp.net-mvc – MVC导航到不同的控制器视图
- ASP.NET安全最佳实践
