提问人:Manatchanok Bumrungban 提问时间:10/30/2023 最后编辑:marc_sManatchanok Bumrungban 更新时间:10/30/2023 访问量:46
如何使用 C 在 ASP.NET MVC 5 中将多个数据从视图更新(传递)到控制器#
How to Update (pass) multiple data from view to controller in ASP.NET MVC 5 using C#
问:
我在将数据从视图传递到控制器时遇到了问题。实际上,我试图从这个社区中的许多问题和答案中搜索和学习,但仍然不起作用。它总是在控制器中发送回“null”。
目前我不知道如何解决它。
此视图的概念是 ,向员工显示评估员和评估表。赋值器和表单类型可以更改。此视图用于在评估器或表单需要更改时进行查看和更新。
所以这里是代码:
模型类:
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using System;
namespace OTWebApplication.Models
{
public class AP_UserForm
{
[Key()]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public String UFID { get; set; }
public String UF_YID { get; set; }
public String UF_FormID { get; set;}
public String UF_FormName { get; set; }
public String UF_EvaID { get; set; }
public String UF_EvaName { get; set; }
public String UF_RootID { get; set; }
public String UF_RootName { get; set; }
public String UF_Available { get; set; }
public String UF_STID { get; set; }
}
public class AP_UserFormL
{
public List<AP_UserForm> AP_UserForm { get; set; }
}
}
[HTML全文]
@model OTWebApplication.Models.AP_UserFormL
<form asp-action="UpdateAll" method="post">
<table class="table">
<thead>
<tr>
<th>EmployeeID</th>
<th>EmployeeName</th>
<th>EvaluatorID</th>
<th>FormName</th>
<th></th>
</tr>
</thead>
<tbody>
@if (Model != null)
{
@for (var i = 0; i < Model.AP_UserForm.Count(); i++)
{
<tr>
<td>
<input asp-for="@Model.AP_UserForm[i].UFID" class="form-control" />
</td>
<td>
<input asp-for="@Model.AP_UserForm[i].UF_RootName" class="form-control" />
</td>
<td>
<select asp-for="@Model.AP_UserForm[i].UF_EvaID" class="form-control">
@foreach (var item in ViewBag.ARoot)
{
<option value="@item.ARoot_ID">@item.ARoot_Name</option>
}
</select>
</td>
<td>
<select asp-for="@Model.AP_UserForm[i].UF_FormID" class="form-control">
@foreach (var item in ViewBag.Form)
{
<option value="@item.FormID">@item.FormName</option>
}
</select>
</td>
<td>
<select asp-for="@Model.AP_UserForm[i].UF_Available" class="form-control">
<option value="0">ไม่ต้องประเมิน</option>
<option value="1">ประเมินปกติ</option>
</select>
</td>
</tr>
}
}
</tbody>
</table>
<button input type="submit" value="Edit">Update</button>
</Form>
C#
[HttpPost]
public IActionResult UpdateAll(AP_UserFormL model)
{
ModelState.Clear();
if (model != null && model.AP_UserForm.Count>0)
{
Console.WriteLine("not null");
}
else
{
Console.WriteLine("null");
}
return RedirectToAction("ManageAP", "Appraisal");
}
答:
0赞
Sadikul Haque Sadi
10/30/2023
#1
检查“网络”选项卡(有效负载、预览部分)以验证前端是否按预期发送数据(控制器将接收的正确格式)。
如果它正确发送数据,则尝试在操作方法中添加 [FromBody] 标记
[HttpPost]
public IActionResult UpdateAll([FromBody] AP_UserFormL model)
评论
0赞
Manatchanok Bumrungban
10/30/2023
签入有效载荷,所有数据都正确无误。已添加 [FromBody]。仍将 NULL 发送回控制器。
评论