【发布时间】:2017-05-10 12:14:28
【问题描述】:
所以在我的编辑器模板中,我有以下内容:
<tr>
<td style="padding-right: 10px;">
@Html.CheckBoxFor(model => Model.IsSelected, new { @class = "CntIsSelected", @checked = Model.IsSelected })
</td>
<td style="padding-right: 10px;">
@Html.DisplayFor(model => model.value)
@Html.HiddenFor(model => model.value)
</td>
<td style="padding-right: 10px;">
@Html.DisplayFor(model => model.totalCount)
</td>
</tr>
它呈现的 HTML 是……
<tr>
<td style="padding-right: 10px;">
<input class="CntIsSelected" data-val="true" data-val-required="The IsSelected field is required." id="CountryCount_0__IsSelected" name="CountryCount[0].IsSelected" type="checkbox" value="true"><input name="CountryCount[0].IsSelected" type="hidden" value="false">
</td>
<td style="padding-right: 10px;">
CN
<input id="CountryCount_0__value" name="CountryCount[0].value" type="hidden" value="JP">
</td>
<td style="padding-right: 10px;">
30
</td>
</tr>
编辑器模板从 jquery 中获取数据。
<script type="text/javascript" name="SearchRecords_v1">
function countryCounts(data) {
$.ajax({
url: "/Home/_CountryArea",
type: "POST",
data: data,
success: function (partialViewResult) {
$("#CountryArea").html(partialViewResult);
CountryIsSelectedClick();
console.log(partialViewResult);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert('Country ERROR!');
}
})
}
</script>
在第一次渲染时,“JP”在列表中是第一位的。页面上有一些选项会调用上面的 jquery 代码并将一些不同的参数传递给控制器,控制器将从 sql 中查找新列表。
return PartialView("_CountryCounts", model);
查看模型,它的值是 CN 传回的,而此列表中没有其他值(这是正确的)。
显示的显示的是 CN 的值(这是正确的),但隐藏的显示的是 JP 的国家代码,这是生成新列表之前的第一个值。
这就像新的列表值正在更新,但隐藏为没有。出于某种原因,它保留了旧值...
【问题讨论】:
-
JP 是 CN 之后数据集中的下一个元素吗?也值得在这里添加您的模型和控制器逻辑
-
是的,也许不是那么简单,这些值实际上来自 ajax 调用。我会看看并发布
-
JP 是此示例列表中的第一个,如果有人从另一个列表中选择某些内容,它会触发 ajax 调用以获取新的国家数据并使用 $("#CountryArea").html(partialViewResult ) 将新数据传递给编辑器模板。看起来这并没有改变 Hidden for 的值
-
抱歉,您的回复让我有点困惑。 '某人从另一个列表中选择了某些东西'是什么意思?
-
页面上有一些复选框,如果用户选中一个,jquery 会将新参数发送回操作并从 sql 查询中获取不同的国家/地区计数。 return PartialView("_CountryCounts", model);作为回报,模型上有 CN 值,刚刚检查过......但是 $("#CountryArea").html(partialViewResult);正在显示 JP 值!
标签: c# razor model-view-controller mvc-editor-templates