So I was wondering if it is possible to use a Surface Controller for all crud operations (Umbraco V10). I know that I can create a Post method, but is it possible to add a Delete or Patch method?
I tried to add a method like this:
public class DeleteController : SurfaceController {
[HttpDelete]
public IActionResult Delete()
{
...
}
}
but I only receive an 405 error telling me that the method is not allowed. If I change the [HttpDelet]
to [HttpPost]
the method works, but I think that is semantically not correct if i delete content in a POST method.
And am I correct in saying that it is not common to have multiple methods in one Surface Controller? So I would have to create a Controller for each method.
You should be able to use your Surface Controller for different CRUD operations. Below is a sample code from the Umbraco CMS document.
Please take a look at this guide for more details.
Here is another old but useful approach.
PS: The attribute issue that you see could be a bug.You can check the existing Umbraco CMS issues here.