.net core 如何避免HttpPost和HttpGet的.net内核中的HTTP 405

.net core 如何避免HttpPost和HttpGet的.net内核中的HTTP 405,.net-core,routes,.net Core,Routes,我有两个操作,一个是GET,另一个是POST,GET和route属性,如下所示: [Route("{culture}/Users/[controller]/Edit/{userFullName?}")] [HttpGet] public async Task<IActionResult> Edit(string userFullName, string cultureCode = CultureData.DEFAULT_LANG) [HttpPo

我有两个操作,一个是GET,另一个是POST,GET和route属性,如下所示:

[Route("{culture}/Users/[controller]/Edit/{userFullName?}")]
    [HttpGet]
    public async Task<IActionResult> Edit(string userFullName, string cultureCode = CultureData.DEFAULT_LANG)
[HttpPost]
    [ValidateAntiForgeryToken]
    public async Task<IActionResult> Edit(UserViewModel model)
[Route(“{culture}/Users/[controller]/Edit/{userFullName?}”)]
[HttpGet]
公共异步任务编辑(字符串userFullName,字符串cultureCode=CultureData.DEFAULT\u LANG)
并张贴如下:

[Route("{culture}/Users/[controller]/Edit/{userFullName?}")]
    [HttpGet]
    public async Task<IActionResult> Edit(string userFullName, string cultureCode = CultureData.DEFAULT_LANG)
[HttpPost]
    [ValidateAntiForgeryToken]
    public async Task<IActionResult> Edit(UserViewModel model)
[HttpPost]
[ValidateAntiForgeryToken]
公共异步任务编辑(UserViewModel模型)
该视图包含以下表单

<form asp-action="Edit" asp-controller="Profile" asp-area="Users" asp-route-culture="@culture" asp-route-userFullName=" @UserExtension.ReturnSeperatedFullName(Model.FirstName, Model.SecondName, Model.ThirdName)"  method="post" enctype="multipart/form-data">

当我点击提交按钮时,它给出

HTTP错误405

我知道这是一个路由问题,因为GET edit操作有不同的路由。如何解决这个问题


谢谢。

{userFullName?}>可为空的userFullName对我来说很可疑。可能空值是混乱的,因为如果它是必需的(并且存在),很明显它会进入GET,如果不存在,它总是指向POST。如果它是可空的,那么在我看来,缺少的userFullName允许两种方式。实际上,我从参数中删除了可空的,它看起来是一样的。