在MVC和Umbraco项目中使用非Umbraco数据?

用户名

我正在一个已安装MVC 4和Umbraco CMS的项目中。我很抱歉-作为新手,我的问题可能很奇怪。

我的问题是:我该如何处理不想通过Umbraco后台管理的类型?而是将简单的数据传入并存储在SQL Server中。

我想特别问一下:

  • 我可以在MVC中创建控制器并绕过Umbraco吗?
  • 应该从哪些控制器继承?它们应该是标准的MVC控制器,SurfaceController还是RenderMvcController同样,它将不是Umbraco文档类型或数据。
  • 视图将继承自UmbracoViewPageUmbracoTemplatePage还是标准MVC视图?
  • 这些视图,控制器和操作的URL将如何更改?在Umbraco中,URL取决于内容树,但是在非Umbraco控制器,视图和操作中,URL会如何?

非常感谢您的宝贵时间,指导,分享和帮助;我非常感谢。

阻尼器

您在这里提出了许多不同的问题。

使用umbraco Umbraco进行开发时,将外部数据嵌入到您的网站中并不少见。如果我们已经告诉您,您可以(几乎)使用在纯.Net项目中使用的任何类型的数据访问。

不要失去您的umbraco上下文

引入外部数据(例如)产品时,请不要丢失umbraco上下文,这一点很重要您仍然有一个面包屑要呈现,要设置活动菜单的css类,等等。您的“外部数据”可能属于一个节点。因此,使用标准MVC控制器是一个坏主意。

肮脏的剃刀

因为您的视图是剃刀,所以您可以将所有外部数据提取都放入视图中的@ {...}。如果您不是经验丰富的程序员,那么可以使用。尽管有关可维护性和DRY原则的主题值得怀疑:-)

RenderMvcController与SurfaceController

使用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中的数据访问

您应该知道,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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

哪种类型的缓存适合在Umbraco项目中使用,如何实现智能缓存?

在vs 2012错误中使用nuget设置Umbraco项目

在IIS中使用MVC站点托管Umbraco站点

如何在Umbraco Surface Controllers中使用ViewData和ViewBag

在非Angular项目中使用Angular

在非ARC项目中使用SBJson

将AJAX与MVC 5和Umbraco结合使用

我可以在ASP.NET MVC 5(非MVC核心)项目中使用ILoggerFactory吗?

从单独的控制器项目中引用的Umbraco LiveDll

如何在 SPA 示例项目中使用 Angular 将数据发布到 MVC 操作?

使用 Umbraco 将 MVC 项目部署到远程 iis 服务器

如何在两个 .Net core MVC 和 Web API 项目中使用一个数据库?

如何在同一个ASP.Net MVC项目中使用Unity MVC和Unity WebAPI

在MVC项目中使用Jquery删除表中的行

在Spring MVC项目中使用自定义jar

在ASP.NET MVC项目中使用WebControl

无法在MVC项目中使用ajax预览图像

在ASP.NET MVC项目中使用Serilog

如何在整个项目中使用Angular工厂数据

Umbraco 8和IoC

如何在REACT项目中使用Scrollmagic和GSAP

无法在Android Gradle项目中使用Picasso和Jsoup

在我的 android 项目中使用 firebase 和 AWS

在Swift和ObjectiveC混合项目中使用砌体

在 angular 6 cli 项目中使用 Javascript 和 Jquery

在React项目中使用JS和TS

在 React 项目中使用 Material ui 和 Tailwind css

如何在ASP.NET Core MVC和Angular项目中使用Angular Material组件(特别是滑块)?

如何在ASP.NET Core MVC项目中使用jQuery和Ajax从视图调用api?