我可以在 Umbraco 的 Surface 控制器中创建所有 CRUD 操作吗?

问题描述 投票:0回答:1

所以我想知道是否可以使用 Surface 控制器来进行所有 CRUD 操作(Umbraco V10)。我知道我可以创建一个 Post 方法,但是是否可以添加一个 Delete 或 Patch 方法?

我尝试添加这样的方法:

public class DeleteController : SurfaceController {
    [HttpDelete]
    public IActionResult Delete()
    {
        ...
    }
}

但我只收到 405 错误,告诉我该方法不被允许。如果我将

[HttpDelet]
更改为
[HttpPost]
该方法有效,但我认为如果我删除 POST 方法中的内容,这在语义上是不正确的。

我是否正确地说,在一个 Surface 控制器中拥有多种方法并不常见?所以我必须为每个方法创建一个控制器。

crud umbraco surface-controller umbraco-10
1个回答
0
投票

您应该能够使用 Surface 控制器进行不同的 CRUD 操作。以下是来自Umbraco CMS 文档的示例代码。

请查看本指南以了解更多详细信息。

这是另一种古老但有用的方法。

    namespace RoutingDocs.Controllers;
    ​
    public class MyController : SurfaceController
    {
        public MyController(
            IUmbracoContextAccessor umbracoContextAccessor,
            IUmbracoDatabaseFactory databaseFactory,
            ServiceContext services,
            AppCaches appCaches,
            IProfilingLogger profilingLogger,
            IPublishedUrlProvider publishedUrlProvider)
            : base(umbracoContextAccessor, databaseFactory, services, appCaches, profilingLogger, publishedUrlProvider)
        {
        }
    ​
        [HttpPost]
        [ValidateUmbracoFormRouteString]
        public IActionResult HandleSubmitMethod1()
        {
            return RedirectToCurrentUmbracoPage();
        }

        [HttpPost]
        [ValidateUmbracoFormRouteString]
        public IActionResult HandleSubmitMethod2()
        {
           return Content("Hello Postback");
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.