我正在一个已安装MVC 4和Umbraco CMS的项目中。我很抱歉-作为新手,我的问题可能很奇怪。
我的问题是:我该如何处理不想通过Umbraco后台管理的类型?而是将简单的数据传入并存储在SQL Server中。
我想特别问一下:
SurfaceController
还是RenderMvcController
?同样,它将不是Umbraco文档类型或数据。UmbracoViewPage
,UmbracoTemplatePage
还是标准MVC视图?非常感谢您的宝贵时间,指导,分享和帮助;我非常感谢。
您在这里提出了许多不同的问题。
使用umbraco Umbraco进行开发时,将外部数据嵌入到您的网站中并不少见。如果我们已经告诉您,您可以(几乎)使用在纯.Net项目中使用的任何类型的数据访问。
引入外部数据(例如)产品时,请不要丢失umbraco上下文,这一点很重要。您仍然有一个面包屑要呈现,要设置活动菜单的css类,等等。您的“外部数据”可能属于一个节点。因此,使用标准MVC控制器是一个坏主意。
因为您的视图是剃刀,所以您可以将所有外部数据提取都放入视图中的@ {...}。如果您不是经验丰富的程序员,那么可以使用。尽管有关可维护性和DRY原则的主题值得怀疑:-)
使用RenderMvcController时,基本上是在为特定文档类型创建Controller。每次umbraco呈现此文档类型的节点时。该控制器将被调用,您渲染的模型将被发送回View。您可能会猜到,这是我最喜欢的提取数据并将其推送到视图的地方之一。甲地面控制器在另一方面为局部视图的控制器,极为出色在HANDELING形式回发。这两个控制器都可以用于网站的前端,而不能用于后端。
您可以根据自己的想法进行操作。但是,如果您从UmbracoViewPage继承视图,则视图中仍然具有所有@Umbraco.Whatever
可用功能
因为您使用RenderMvcController“劫持”了一条路线,所以您可以信任umbraco后端转到正确的URL。querystring可用于获取所需的外部数据。
有时候,如果我不能使用上面的控制器,我会在IPublishedContent上创建一个extensionionMethod。这样,我可以编写如下代码:
foreach (var myObj in Model.Content.GetMyExternalData()) {
// do stuff
}
如果需要公开数据(使用webApi包装器),请尝试使用UmbracoApiController。这个REST纯唱。
您应该知道,Umbraco使用petapoco作为ORM。因此,您可以(也应该)考虑也使用它。您可以重用数据库连接,而不会出现任何问题。
var query = new Sql().Select("*").From("myCustomTable").Where<MyModel>(x => x.Id == id);
return DatabaseContext.Database.Fetch<MyModel>(query).FirstOrDefault();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句