与 ASP.NET Core 的模型绑定[重复]

2024-02-17

我正在尝试使用 asp.net core MVC 制作一个简单的 todo MVC 应用程序。我的计划是制作一个带有简单复选框的网页,并让用户能够使用表单更改状态。 表单显示正确,但控制器中的“模型绑定”不起作用。

我究竟做错了什么?

用户界面(图片) https://i.stack.imgur.com/MiLp9.png

风景:

@model List<Todo>

<form  asp-controller="Home" asp-action="ModifyTodo" method="post">

    <ul class="mdc-list">
        @for (var i = 0; i <  Model.Count; i++)
        {
            <li class="mdc-list-item">

                <input asp-for="@Model[i].Status" name="todos[@i].Status" >
                <input asp-for="@Model[i].Id" name="todos[@i].Id" value="@Model[i].Id" type="hidden">
                <input asp-for="@Model[i].Text" name="todos[@i].Text" value="@Model[i].Text" type="hidden">

                <label> @Model[i].Text</label>
            </li>
        }
    </ul>
    <input type="submit" value="submit">
</form>

我的控制器:

public class HomeController : Controller
{
    public IActionResult Index()
    {
        return GiveTodoView();
    }

    [HttpPost]
    public IActionResult ModifyTodo([FromForm] List<Todo> todos)
    {
        // Console.WriteLine(test);
        var temp = "Count: "+todos.Count;
        foreach (var todo in todos)
        {
            temp += todo.Status + " " + todo.Text + " <br />";
        }
        return Content(temp);
        //   return GiveTodoView();
    }

    private IActionResult GiveTodoView()
    {
        var manager = TodoManager.GetTotalManager();

        return View("Index", manager.GetTodos().ToList());
    }
}

Todo.cs

public class Todo
{
    public int Id;
    public bool Status;
    public string Text;
}

如何将表单中的所有待办事项返回到控制器的操作中ModifyTodo?

提前致谢!

Edit

Razor 生成的 html。我已经删除了不必要的标记

<form method="post" action="/Home/ModifyTodo">
    <ul class="mdc-list">
            <li class="mdc-list-item">

                <input name="todos[0].Status" type="checkbox" checked="checked" data-val="true" data-val-required="The Boolean field is required." id="z0__Status" value="true">
                <input name="todos[0].Id" value="0" type="hidden" data-val="true" data-val-required="The Int32 field is required." id="z0__Id">
                <input name="todos[0].Text" value="First test" type="hidden" id="z0__Text">
                <label>First test</label></li>
            <li class="mdc-list-item">

                    <input name="todos[1].Status" type="checkbox" data-val="true" data-val-required="The Boolean field is required." id="z1__Status" value="true">
                    <input name="todos[1].Id" value="0" type="hidden" data-val="true" data-val-required="The Int32 field is required." id="z1__Id">
                    <input name="todos[1].Text" value="second test" type="hidden" id="z1__Text">
                <label>second test</label></li>
    </ul>
</div>
<input name="__RequestVerificationToken" type="hidden" value="CfDJ8GAD8c4qIkNEktrZwHPVewBTkkBNZ7RlAVcu7N2_sgbMy2O3FSRi_x5Nw1WNlXWqBhz_wNdeBYCj9oqnopS4fZxDgvjC5FGeCQ2jS3tS7IdXgwyAxPe6BnDhmOJDcK9fmqBdV8BcTC8qxrZEouj4RMU" />
<input name="[0].Status" type="hidden" value="false">
<input name="[1].Status" type="hidden" value="false">
</form>

Since todos是您要绑定的根对象的名称,您不需要在输入上使用其名称

<input asp-for="@Model[i].Status" name="[@i].Status" >

您还需要将它们从公共字段更改为公共属性

public class Todo
{
    public int Id { get; set; }
    public bool Status { get; set; }
    public string Text { get; set; }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

与 ASP.NET Core 的模型绑定[重复] 的相关文章

  • 如何验证文件名称在 Windows 中是否有效?

    是否有一个 Windows API 函数可以将字符串值传递给该函数 该函数将返回一个指示文件名是否有效的值 我需要验证文件名是否有效 并且我正在寻找一种简单的方法来完成此操作 而无需重新发明轮子 我正在直接使用 C 但针对的是 Win32
  • 获取按下的按钮的返回值

    我有一个在特定事件中弹出的表单 它从数组中提取按钮并将标签值设置为特定值 因此 如果您要按下或单击此按钮 该函数应返回标签值 我怎样才能做到这一点 我如何知道点击了哪个按钮 此时代码返回 DialogResult 但我想从函数返回 Tag
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • pthread_cond_timedwait() 和 pthread_cond_broadcast() 解释

    因此 我在堆栈溢出和其他资源上进行了大量搜索 但我无法理解有关上述函数的一些内容 具体来说 1 当pthread cond timedwait 因为定时器值用完而返回时 它如何自动重新获取互斥锁 互斥锁可能被锁定在其他地方 例如 在生产者
  • 从父类调用子类方法

    a doStuff 方法是否可以在不编辑 A 类的情况下打印 B did stuff 如果是这样 我该怎么做 class Program static void Main string args A a new A B b new B a
  • 未解决的包含:“cocos2d.h” - Cocos2dx

    当我在 Eclipse 中导入 cocos2dx android 项目时 我的头文件上收到此警告 Unresolved inclusion cocos2d h 为什么是这样 它实际上困扰着我 该项目可以正确编译并运行 但我希望这种情况消失
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • C++ 子字符串返回错误结果

    我有这个字符串 std string date 20121020 我正在做 std cout lt lt Date lt lt date lt lt n std cout lt lt Year lt lt date substr 0 4 l
  • 如何忽略“有符号和无符号整数表达式之间的比较”?

    谁能告诉我必须使用哪个标志才能使 gcc 忽略 有符号和无符号整数表达式之间的比较 警告消息 gcc Wno sign compare 但你确实应该修复它警告你的比较
  • 指针减法混乱

    当我们从另一个指针中减去一个指针时 差值不等于它们相距多少字节 而是等于它们相距多少个整数 如果指向整数 为什么这样 这个想法是你指向内存块 06 07 08 09 10 11 mem 18 24 17 53 7 14 data 如果你有i
  • 使用 System.Text.Json 即时格式化 JSON 流

    我有一个未缩进的 Json 字符串 例如 hash 123 id 456 我想缩进字符串并将其序列化为 JSON 文件 天真地 我可以使用缩进字符串Newtonsoft如下 using Newtonsoft Json Linq JToken
  • 从路径中获取文件夹名称

    我有一些路c server folderName1 another name something another folder 我如何从那里提取最后一个文件夹名称 我尝试了几件事 但没有成功 我只是不想寻找最后的 然后就去休息了 Thank
  • 从库中捕获主线程 SynchronizationContext 或 Dispatcher

    我有一个 C 库 希望能够将工作发送 发布到 主 ui 线程 如果存在 该库可供以下人员使用 一个winforms应用程序 本机应用程序 带 UI 控制台应用程序 没有 UI 在库中 我想在初始化期间捕获一些东西 Synchronizati
  • 需要哪个版本的 Visual C++ 运行时库?

    microsoft 的最新 vcredist 2010 版 是否包含以前的版本 2008 SP1 和 2005 SP1 还是我需要安装全部 3 个版本 谢谢 你需要所有这些
  • WCF:将随机数添加到 UsernameToken

    我正在尝试连接到用 Java 编写的 Web 服务 但有些东西我无法弄清楚 使用 WCF 和 customBinding 几乎一切似乎都很好 除了 SOAP 消息的一部分 因为它缺少 Nonce 和 Created 部分节点 显然我错过了一
  • 为什么 C# Math.Ceiling 向下舍入?

    我今天过得很艰难 但有些事情不太对劲 在我的 C 代码中 我有这样的内容 Math Ceiling decimal this TotalRecordCount this PageSize Where int TotalRecordCount
  • C 中的异或运算符

    在进行按位操作时 我在确定何时使用 XOR 运算符时遇到一些困难 按位与和或非常简单 当您想要屏蔽位时 请使用按位 AND 常见用例是 IP 寻址和子网掩码 当您想要打开位时 请使用包含或 然而 XOR 总是让我明白 我觉得如果在面试中被问
  • 如何在 C++ BOOST 中像图形一样加载 TIFF 图像

    我想要加载一个 tiff 图像 带有带有浮点值的像素的 GEOTIFF 例如 boost C 中的图形 我是 C 的新手 我的目标是使用从源 A 到目标 B 的双向 Dijkstra 来获得更高的性能 Boost GIL load tiif
  • 防止索引超出范围错误

    我想编写对某些条件的检查 而不必使用 try catch 并且我想避免出现 Index Out of Range 错误的可能性 if array Element 0 Object Length gt 0 array Element 1 Ob
  • 使用按位运算符相乘

    我想知道如何使用按位运算符将一系列二进制位相乘 但是 我有兴趣这样做来查找二进制值的十进制小数值 这是我正在尝试做的一个例子 假设 1010010 我想使用每个单独的位 以便将其计算为 1 2 1 0 2 2 1 2 3 0 2 4 虽然我

随机推荐

  • 服务器资源管理器不可用(VS2008Pro)

    最近我的 VS 2008 出现了一些问题 建议重新安装 为了确保重新安装能够解决我的问题 我手动卸载了与 VS 和 SQL Server 有关的所有内容 我安装了 2008 Express 版本 现在 当我重新安装 SQL Server 和
  • 在编译器中实现闭包

    我正在尝试设计一个伪汇编代码的基本编译器 但是 我不知道如何实现闭包 看来我需要将特定的寄存器值与每个 子例程 相关联 我考虑过使用堆栈 但它似乎又不够 似乎只有关联数组才能工作 但是如何在汇编中完成该操作或类似的操作呢 我选择尝试表示的示
  • 使用 Oscillator.connect() 和 Oscillator.disconnect() 方法在使用 Web Audio API 构建的应用程序中打开/关闭声音有多可行?

    我一直在尝试使用 Web Audio API 创建 88 键钢琴 计划是首先以适当的频率运行所有 88 个振荡器 然后使用Oscillator connect and Oscillator disconnect 按下和释放钢琴键时相应振荡器
  • 在 Axapta/Dynamics Axe 中的链接表上过滤

    我在 Axapta Dynamics Ax EmplTable 中有一个表单 它有两个数据源 EmplTable 和 HRMVirtualNetworkTable 其中第二个数据源 HRMVirtualNetworkTable 通过 延迟
  • Visual Studio Code 中的 Launch.json

    要在 Visual Studio Code 中开始调试 我必须生成 Launch json 文件 在 Visual Studio Code 自动生成文件后 我得到如下内容 version 0 2 0 configurations name
  • 我可以删除migrations目录中的django迁移文件吗

    我个人喜欢 django 因为它的 MVC 理念 但是 当我在版本 1 7 中运行 Django 迁移时 我在其中执行的每个迁移都存储在迁移目录中 如果我删除这些文件 它会在迁移时抛出错误 我是这样测试的 我创建了一个新的 Django 项
  • 在 BeautifulSoup 中匹配部分 id

    我在用着美丽汤 我必须找到任何参考 div 带有 id 的标签如 post 例如 div div div div 我努力了 html div div div div soupHandler BeautifulSoup html print
  • 在 CSS3 中重新启动动画:还有比删除元素更好的方法吗?

    我有一个 CSS3 动画 需要单击重新启动 这是一个显示还剩多少时间的栏 我使用scaleY 0 变换来创建效果 现在我需要通过将条恢复到scaleY 1 并让它再次转到scaleY 0 来重新启动动画 我第一次尝试设置 scaleY 1
  • 当 Knockout 更新值时,更改事件不会触发

    我有一个外部 javascript 库 它会触发文本区域的更改 格式化它等 但是 当 KnockoutJS 将值设置为文本区域时 不会触发更改事件 我的问题的简化小提琴 http jsfiddle net EZC9E 当 Knockout
  • 需要类型但无法导入桥接标头

    我正在开发一个包含 Swift 和 Objective C 代码的项目 它工作没有任何问题 直到我尝试在 Bridging Header 文件中导入 h 类 期望一个类型 在我试图导入它的课程中 导入桥接标头失败 Users sysadmi
  • 使用 XUnit 和 ASP.NET Core 1.0 进行依赖注入

    我正在尝试弄清楚如何使用 XUnit 进行依赖注入 我的目标是能够将我的 ProductRepository 注入到我的测试类中 这是我正在尝试的代码 public class DatabaseFixture IDisposable pri
  • 延迟 jquery 脚本直到其他所有内容都加载完毕

    我有一个 jquery 脚本 只有在页面上的其他所有内容 包括其他一些 javascript 我无法控制 完成其工作后才需要运行该脚本 我虽然也许有 document ready 的替代品 但我还没找到它 你可以有 document rea
  • call_user_func_array 将参数传递给构造函数[重复]

    这个问题在这里已经有答案了 我已经搜索了许多 Google 结果页面以及 stackoverflow 上的此处 但找不到似乎适合我的情况的解决方案 我试图构建的函数似乎只有最后一个障碍 该函数使用 call user func array
  • Yii 2.0 如何扩展核心类

    我想延长课程yii web 响应 所以我在文件夹中创建了一个新类 Response成分我尝试覆盖发送方法 namespace app components use Yii class Response extends yii web Res
  • Angular 6 @angular/pwa - sw 未成功提供清单 start_url

    我使用 Angular 6 和 Angular pwa 包构建了一个 PWA 我一直在尝试解决此问题 但无论我做什么 我都会收到 start url 错误 我努力了 使用绝对链接 确保 start url 在 SW 的范围内 sw 在主文件
  • Chrome 是否支持单个 javascript url 上的多个模块/sourceMappingURL

    我一直在尝试 Chrome 中的 Source Maps 功能 发现它不支持将单个 javascript 资源附加到包含多个模块以及一个连接在一起的脚本标记 sourceMappingURL评论分离each one 第一个映射已连接 我看到
  • RSpec Stubbing:按顺序返回

    我知道以下事情有效 返回一个参数 subject should receive get user choice choices choices to a 0 和一个序列 第一次调用时返回 0 第二次 退出 时返回 subject shoul
  • Google 登录但结果代码为 0

    我想为我的应用程序创建一个 Google 标志 但我的结果代码来自onActivityResult is 0 In my onCreate 方法我启动功能startSignInIntent 像这样 protected void onCrea
  • 如何使用 slf4j / log4j2 发送电子邮件通知?

    我研究了其他类似的问题 并进行了一些谷歌搜索来找到我的答案 但我的问题仍然没有答案 我仍然不熟悉其中一些是如何工作的 所以请耐心等待 我们的 maven pom xml 使用 slf4j 依赖项 我们的 log4j2 xml 文件如下所示
  • 与 ASP.NET Core 的模型绑定[重复]

    这个问题在这里已经有答案了 我正在尝试使用 asp net core MVC 制作一个简单的 todo MVC 应用程序 我的计划是制作一个带有简单复选框的网页 并让用户能够使用表单更改状态 表单显示正确 但控制器中的 模型绑定 不起作用