我已经检查过这里有一些类似的问题,但似乎没有一个能回答我的问题,所以希望有人可以帮助我。
我在视图中有一个表单,并且有一个像子表单一样使用的部分视图。部分视图用于显示项目的 iList。(下面的屏幕截图显示了它的显示方式)。
在部分视图中,每个项目都有一个复选框,用户可以选中该复选框将其删除。如果我选中第一项的复选框,则第一项将从代码中的列表中删除,但是当模型传递回视图时,返回的项目是错误的项目(选中的项目)。
因此,在下面的示例中,如果我检查第一个项目(无应答延迟 = 18)并提交,则同一项目保留在页面上,而另一个项目(无应答延迟 = 10)消失。如果我随后重新加载所有数据,则会出现正确的项目(无应答延迟 = 10)。
我已经检查了正确的数据被传回的方法,但错误的项目仍然保留在页面上。如果我随后刷新页面,则会出现正确的项目。请注意,该方法已经过一些清理,但正确的项目确实会从数据库中删除。
另一件需要注意的事情是,这是第三方产品的插件,因此除非发布到其他产品,否则我无法运行它,这使得调试变得棘手。
主视图的代码是
@using(Html.BeginForm("SaveCallFeatures", "CallFeatures", FormMethod.Post, new { id = "CallFeatures", name = "CallFeatures" }))
{
@Html.AntiForgeryToken()
<div>
<h2>Call Features</h2>
<div class="form-panel">
<h4>Telephone Call Features</h4>
<div>
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
@Html.LabelFor(model => model.phoneNumber, htmlAttributes: new { @class = "label" })
@Html.EditorFor(model => model.phoneNumber, new { htmlAttributes = new { @class = "form-control", @readonly = "readonly" } })
@Html.ValidationMessageFor(model => model.phoneNumber, "", new { @class = …Run Code Online (Sandbox Code Playgroud)