【发布时间】:2021-08-11 15:57:03
【问题描述】:
我正在使用 FormCollection 和 GetValues(),如果我重新提交信息,我会遇到问题。我有一个按钮,计算一系列条目的斜率。当我计算斜率时,我将信息保存在临时表中并在列表中重新显示值。当我第一次保存条目时,保存和构建列表没有问题。但是,当我再次尝试计算坡度时,它不会识别之前的条目或对之前条目的任何更改,但会识别任何新项目。
如果临时表中有任何值,我的创建控制器会显示列表
model.TempPointList = db.Temp_SO2AuditMultipointCal
.Where(x => x.SO2AuditCalID == tempID)
.OrderByDescending(x => x.CalPoint).ToList();
HttpPost 会查看 FormCollection
if (Command == "CalcSlope")
{
string[] pointItems1 = form.GetValues("Point");
string[] concItems1 = form.GetValues("CalConc");
string[] dasItems1 = form.GetValues("DAS");
string[] diffItems1 = form.GetValues("Diff");
//use arrays to calculate the slope ...
}
我的视图收集并显示值
<table class="table">
<tbody id="myTable">
<tr>
<th>Select</th>
<th>Point</th>
<th>Cal Conc</th>
<th>DAS</th>
</tr>
foreach (var item in Model.TempPointList)
{
<tr>
@Html.HiddenFor(modelItem => item.Temp_SO2AuditMultipointCalID)
<td><input type='checkbox' name='record'></td>
<td>@Html.EditorFor(modelItem => item.CalPoint, new { @autocomplete = false })</td>
<td>@Html.EditorFor(modelItem => item.CalConc, new { @autocomplete = false, @Cache = false })</td>
<td>@Html.EditorFor(modelItem => item.DASResponse, new { @autocomplete = false, @Cache = false })</td>
</tr>
}
}
当我将一个项目添加到列表中时,我有一个执行以下功能的 添加行 按钮
$(".add-row").click(function () {
var Point = $("#Point").val();
var CalConc = $("#CalConc").val();
var DAS = $("#DAS").val();
var count = $('#myTable').children('tr').length;
$('#counter').html(count);
$('#myTable').append("<tr><td><input type='checkbox' name='record'></td><td><input type='text' name='Point' value= " + Point + "></td><td><input type='text' name='CalConc' value= " + CalConc + "></td><td><input type='text' name='DAS' value= " + DAS + "></td></tr>");
});
我尝试设置@Cache = false 并将ModelState.Clear(); 添加到控制器,但它们不会影响任何东西。
【问题讨论】:
标签: c# asp.net-mvc model-view-controller formcollection