gpt4 book ai didi

asp.net - 如何从 View 中获取表数据是 asp.net mvc 4

转载 作者:行者123 更新时间:2023-12-03 22:10:39 24 4
gpt4 key购买 nike

我的问题是如何从 View 中将表数据返回给 Controller ?

我的模型中有类:

public class Company
{
public string Name { get; set; }
public int ID { get; set; }
public string Address { get; set; }
public string Town { get; set; }
}

然后我将公司列表传递给我的 View :

    @model IEnumerable<MyTestApp.Web.Models.Company>
....
@using (Html.BeginForm("Edit", "Shop"))
{
<table id="example">
<thead>
<tr>
<th>
@Html.DisplayNameFor(model => model.Name)
</th>
<th>
@Html.DisplayNameFor(model => model.Address)
</th>
<th>
@Html.DisplayNameFor(model => model.Town)
</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model) {
<tr>
<td>
@Html.EditorFor(modelItem => item.Name)
</td>
<td>
@Html.EditorFor(modelItem => item.Address)
</td>
<td>
@Html.EditorFor(modelItem => item.Town)
</td>
</tr>
}
</tbody>
</table>

<input type="submit" value="Submit" />
}

一切看起来都很好,但我不明白如何在 Controller 中获取修改后的数据?我使用了这些方法:

public ActionResult Edit(IEnumerable<Company> companies)
{
// but companies is null
// and ViewData.Model also is null

return RedirectToAction("SampleList");
}

我需要访问修改后的对象,我做错了什么?

更新:感谢 webdeveloper,我只需要使用“for”循环而不是“foreach”循环。正确的版本是

<tbody>
@for (int i = 0; i < Model.Count(); i++ ) {
<tr>
<td>
@Html.EditorFor(modelItem => modelItem[i].Name)
</td>
<td>
@Html.EditorFor(modelItem => modelItem[i].Address)
</td>
<td>
@Html.EditorFor(modelItem => modelItem[i].Town)
</td>
</tr>
}
</tbody>

最佳答案

请看我的回答:Updating multiple items within same view或者对于 Darin Dimitrov 的回答。

您需要在呈现的 html 标记中的 name 属性中具有 index 的项目。你也可以看看:Model Binding To A List

关于asp.net - 如何从 View 中获取表数据是 asp.net mvc 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14453689/

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