c# - ASP.NET Core 2.1 Razor 表单,帖子未到达控制器
问题描述
昨天我花了很多时间搜索和解决这个问题,但没有提出解决方案。这是我用作参考的指南。
问题是表单中的数据没有到达我的控制器。我的目标是获取表单数据并将其传递给我的控制器/模型,以便我可以在整个代码中使用这些值并将它们存储在数据库中。以下是我到目前为止所拥有的...
在我的 Browse.cshtml (视图)
@model Collect
<form asp-action="Collect" asp-controller="Collect" method="post">
<input type="hidden" asp-for="GameId" name="@game.id"/>
<button type="submit" class="dropdown-item btn btn-block">Default</button>
</form>
在我的 CollectController.cs(控制器)中
using System;
using GameLibrary.me.Models;
using Microsoft.AspNetCore.Mvc;
namespace GameLibrary.me.Controllers
{
public class CollectController : Controller
{
[HttpGet]
public IActionResult Collect()
{
return View();
}
[HttpPost, ValidateAntiForgeryToken]
public IActionResult Collect(Collect model)
{
Console.WriteLine("**********\n"+model.GameId+"\n**********");
return Content($"Hello {model.GameId}");
}
}
}
在我的 Collect.cs(模型)中
namespace GameLibrary.me.Models
{
public class Collect
{
public int GameId { get; set; }
}
}
编辑:这是我的 IDE 告诉我的...
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
Request starting HTTP/1.1 POST https://localhost:5001/browse?game=eevee application/x-www-form-urlencoded 7
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
Request finished in 1.0139ms 200
info: Microsoft.AspNetCore.Server.Kestrel[32]
Connection id "0HLJHIUOU6AKO", Request id "0HLJHIUOU6AKO:00000003": the application completed without reading the entire request body.
任何关于我做错了什么的指导将不胜感激......我也可以通过隐藏字段类型发送多个值,还是应该为每个值创建一个新的隐藏字段类型?
解决方案
这里有很多不同的帮助,特别感谢 Kirk Larklin!有三个问题阻止了我的控制器获取数据。
Browse.cshtml 缺少@addTagHelpers ...我添加了以下内容:
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers @addTagHelper *, AuthoringTagHelpers
我的 CollectController.cs 缺少一条路线...我添加了以下内容:
[HttpPost, ValidateAntiForgeryToken] [Route("Index/Collect")]
最后,我将我的控制器发布方法从与另一种方法冲突的“收集”重命名为索引,并更新了 Browse.CSHTML 文件中的 asp-action 以匹配。
public IActionResult Index(Collect model)
感谢所有的帮助!
-特拉维斯 W
推荐阅读
- python-3.x - 尽管对其执行了操作,但仍显示列表为空
- javascript - React/ES6:函数签名中的花括号?
- installation - SQL Server 2017 Express Edition - 安装错误2147467259(系统找不到指定的路径)
- ios - 如何解决 Firebase 中的 Apple Mach-O 链接器错误?
- javascript - 通过事件访问 parentElement 属性
- c# - 欧文上下文。实体类型 IdentityUser 不是当前上下文模型的一部分
- c - 什么使 errno 线程安全?
- reactjs - 我可以在将它们分开的同时使用反应导航和 redux 吗?
- javascript - 如何在 Javascript 中设置 mailto 的背景?
- x86 - 没有 BIOS 中断的视频卡编程