小编cru*_*dev的帖子

.net核心没有路由到POST方法

链接到项目 - > https://github.com/crumdev/hqbbq.git

我有一个简单的3页MVC网站,有1个控制器.对于联系页面,我有一个小的3输入表单.以下是Controller方法:

[Route("contact/")]
public IActionResult Contact()
{
    return View();
}

[HttpPost]
public IActionResult Contact(string name, string email, string message)
{
    ViewBag.Name = name;
    ViewBag.Email = email;
    ViewBag.Message = message;

    return View();
}
Run Code Online (Sandbox Code Playgroud)

当我在HttpPost的Contact方法中提交带有断点的表单时,它永远不会中断,而是使用常规方法并再次返回视图.我已经尝试将我的表单简化为name字段,只捕获它并且它不会进入POST方法.我给了常规的Contact方法[HttpGet]属性,所以它只能严格用于GET请求,当我提交表单时,它会完全绕过我的控制器并返回除了"Hello World!"之外的空白的异常页面.屏幕上.我已经阅读了文档,并在teamtreehouse.com上阅读了常规ASP.Net的教程,但是无法理解为什么它会以这种方式运行.

编辑:这是提交POST的页面的代码.我只是使用一个纯HTML表单和POST方法来提交数据.

https://github.com/crumdev/hqbbq/blob/master/HQ-BBQ/Views/Home/contact.cshtml

c# http-post asp.net-mvc-routing asp.net-core-mvc

5
推荐指数
1
解决办法
6455
查看次数