gpt4 book ai didi

asp.net-mvc-3 - 带有集合的提交对象缺少新集合数据

转载 作者:行者123 更新时间:2023-12-02 14:36:25 25 4
gpt4 key购买 nike

我在从随机数列表获取新数据时遇到问题

我得到了这个简单的类(class)

public class Test
{
public string Name { get; set; }
public List<int> RandomNumbers { get; set; }

public Test()
{
RandomNumbers = new List<int>(){0,0,0,0,0};
}
}

在我的 Controller 中,我创建了两个 ActionResults,一个用于 Get,一个用于 Post

public ActionResult Test()
{
var test = new Test();
return View(test);
}

[HttpPost]
public ActionResult Test(Test test)
{
return View();
}

最后是 View

@model Test
@{
ViewBag.Title = "Test";
Layout = null;
}

<h2>Test</h2>
@using (Html.BeginForm())
{
@Html.LabelFor(model => model.Name)
@Html.EditorFor(model => model.Name)
<ul>@foreach (var t in Model.RandomNumbers)
{
<li>
@Html.LabelFor(model => t)
@Html.EditorFor(model => t)
</li>
}
</ul>
<input type="submit" value="Save"/>
}

enter image description here

enter image description here

页面看起来像这样。现在,当我单击“保存”按钮时,将调用 [HttpPost] 测试,但包含的测试对象仅包含新名称,不包含 RandomNumber 列表中的任何更改。我做错了什么?

最佳答案

您必须确保您的嵌套集合相应地呈现在 View 中。

在 View 中:

     <ul>@for (int i = 0; i < Model.RandomNumbers.Count; i++)
{
<li>
@Html.LabelFor(m => m.RandomNumbers[i])
@Html.TextBoxFor(m => m.RandomNumbers[i])
</li>
}
</ul>

这将创建索引输入字段,例如

<input id="RandomNumbers_3_" name="RandomNumbers[3]" type="text" value="0" />

(为简洁起见,跳过验证)

关于asp.net-mvc-3 - 带有集合的提交对象缺少新集合数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8135991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com