我有Umbraco 7.5,我需要知道如何创建普通的MVC页面,以便为我的网站添加新数据。
假设我有一个Doctype" Node"在后台。我想让一些人能够添加/编辑一些节点,而无需通过后台办公。我该怎么做?
我试图创建添加我的视图和控制器(MVC方式),但显然Umbraco劫持了所有路由,我的控制器根本没有击中。
我已经搜索了这件事(这很难,因为我不是在寻找Umbraco表格:|)而且我已经找到了this。但我不想将我的表单添加为其他页面的一部分。我的意思是,在类型""中创建一个页面是否有意义?然后在它的模板上我做我的另一种类型的添加/编辑形式?看起来很奇怪吧?
我感谢任何有关此事的想法/解决方案
答案 0 :(得分:0)
你有几个选择。您可以为编辑器创建一个物理页面,并将编辑器添加为SurfaceController操作(基本上是一个带有回发的MVC Partial,它仍然是Umbraco管道的一部分)。然后,您的表单可以使用Content Service API更新详细信息。这种方法的优点是您的代码可以访问所有Umbraco方法并开箱即用。如果您想在JS客户端使用JS请求,也可以使用WebAPI控制器。
您还可以使用路由劫持:https://our.umbraco.org/documentation/reference/routing/custom-controllers这允许您拥有自己的Umbraco路由自定义控制器,而不是使用默认的Umbraco路由器。这需要更多的工作来设置。
最后,您还可以告诉Umbraco完全忽略某些路径,您可以在这些路径上运行控制器。这里的缺点是,由于Umbraco忽略了路线,因此您无法自动访问所有有用的Umbraco模板等。
我最近使用过第一种方法,效果很好。唯一需要注意的是,如果许多用户正在编辑大量节点(每次保存节点,创建一个版本),允许用户编辑节点将很快填满版本表。如果你正沿着这条路走下去,你可能想要研究像Unversion这样的东西:https://our.umbraco.org/projects/website-utilities/unversion/这有助于在这种情况下使旧版本更易于管理。