【问题标题】:Can't use @model with @inherit in Umbraco 7不能在 Umbraco 7 中将 @model 与 @inherit 一起使用
【发布时间】:2018-02-13 12:23:55
【问题描述】:
我已经在我的项目中实现了实体框架,因为我需要通过表单将一些数据插入到我的 SQL 数据库中的自定义表中。
我已经搭建了所有 CRUD 视图,并有一个链接到创建视图的按钮。这一切都很好,但我需要创建视图来使用包含我的页眉、导航和页脚的主模板。
在我的创建视图中,我需要导入我的模型,但我无法在同一个文件中同时使用@model 和@inherit 关键字,因此我无法继承主模板。
实体框架不能与 Umbraco 一起使用吗?我需要创建局部视图或宏吗?
【问题讨论】:
标签:
c#
asp.net
entity-framework
content-management-system
umbraco
【解决方案1】:
您还可能希望考虑无头 CMS 的概念。这样,您的视图、模型或应用程序中的任何内容都不一定依赖于 CMS 的类。市场上有许多无头 CMS。虽然我与其中一家供应商合作,但我真的希望您根据自己的喜好进行选择。
【解决方案2】:
如果您想使用母版页,您必须将其设置在页眉,如下所示:
如果母版页的名称是 Master,这里是代码。
@{
Layout = "Master.cshtml";
}
如果您使用的是 umbraco 页面,并且您想从控制器传递一些自定义对象,则代码如下:
@inherits Umbraco.Web.Mvc.UmbracoViewPage<List<ViewModel>>
如果您只使用来自后端的自定义逻辑,它与 umbraco 仪表板本身无关,则不需要宏!
记得从SurfaceController继承。
Here 是另一个问题,它可能会更详细地告诉您如何创建模型并将其传递给视图。
请记住,您的模型应该继承自“RenderModel”,并且您还必须使用 umbraco 表单将数据发送回服务器。
如果您还有其他不清楚的地方,请告诉我!