我在 Umbraco 中设置了一个文档类型,并为此文档类型创建了一个自定义 Controller 和模型。

自定义 Controller 继承自:RenderMvcController 类, View 通过 @inherits Umbraco.Web.Mvc.UmbracoViewPage<com.something.model> 继承模型

这一切都适用于任何 HttpGet 请求。但是,一旦我想使用@using (Html.BeginUmbracoForm("SomeAction", "SomeController", null, new { @class = "some-class" })) 将表单发回 Controller

我收到以下错误消息:在 Controller 名称 SomeController 的 RouteTable 中找不到 Surface Controller 路由

从我能够找到的所有文档中,当涉及到表单帖子时,它总是指 SurfaceControllers。有没有办法更改路由,以便它可以发布到我的自定义 Controller ,而不是从 SurfaceController 类继承的另一个 Controller ?

最佳答案

根据 http://our.umbraco.org/forum/developers/api-questions/38662-(v6)-Could-not-find-a-Surface-controller-route-error?p=0
SomeController 需要继承自 SurfaceController ,而不是 RenderMvcController

或者,您可以创建一个专用路由并将其直接指向您的 Controller :

public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
         routes.MapRoute("someController", "some/someAction",
            new { controller = "Some", action = "SomeAction" });
    }
}

关于c# - 在 Umbraco 中使用 RenderMvcController POST 数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25549252/

10-12 05:19