use*_*510 6 umbraco umbraco7 umbraco-mvc
我正在开发一个安装了MVC 4和Umbraco CMS的项目.我道歉 - 作为新手,我的问题可能很奇怪.
我的问题是:如何处理我不想通过Umbraco后台管理的类型?相反,它将是简单的数据来源并存储在SQL Server中.
具体来说我想问:
SurfaceController还是RenderMvcController?同样,它不会是Umbraco文档类型或数据.UmbracoViewPage,UmbracoTemplatePage还是标准的MVC视图?非常感谢你宝贵的时间,指导,分享和帮助; 我非常感谢.
dam*_*pee 14
你在这里问了很多不同的问题.
使用umbraco Umbraco进行开发时,将外部数据嵌入到您的网站中并不罕见.如果我们已经告诉您,您可以使用(几乎)您在普通.Net项目中使用的任何类型的数据访问.
在拉入外部数据(例如)产品时,重要的是不要丢失umbraco上下文.您仍然需要渲染的面包屑,要设置的活动菜单的css类等等.您的"外部数据"可能属于节点下方.因此,使用标准MVC控制器是个坏主意.
因为您的观点是剃刀,所以您可以在视图中将所有外部数据提取到@ {...}中.如果您不是一位经验丰富的程序员,那么这是有效的.虽然关于可维护性和DRY原则的主题值得怀疑:-)
当您使用RenderMvcController时,您基本上是为特定文档类型创建一个Controller.每次umbraco渲染此文档类型的节点.将调用此控制器,并将您呈现的模型发送回View.正如您可能猜到的,这是我最喜欢的提取数据并将其推送到视图的地方之一.甲地面控制器在另一方面为局部视图,极为出色在HANDELING形式回发的控制器.这两个控制器都可以用于您网站的前端,而不是后端.
你可以用你的意见做你想要的.但是,如果您从UmbracoViewPage继承您的视图,您仍然@Umbraco.Whatever可以在视图中使用所有可用功能
因为您使用RenderMvcController"劫持"路线,所以您可以信任umbraco后端以转到正确的URL.查询字符串可用于获取所需的外部数据.
有时候,如果我不能使用上面的控制器,我会在IPublishedContent上创建一个extentionMethod.像这样我可以写这样的代码:
foreach (var myObj in Model.Content.GetMyExternalData()) {
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
如果您需要公开数据(使用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();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2315 次 |
| 最近记录: |