基本上我从下拉列表中获取一个值,并通过AJAX将其传递给客户端方法。基于此值,我获取数据,我想将其放入文本框中。
<script type="text/javascript">
$('#dropdownlist').change(function () {
$.post('/Index/GetJSON/' + this.value, null,
function (data) {
$('#somefield').val(data)
});
});
</script>
因此调用此方法:
[HttpPost]
public JsonResult GetJSON(int ID)
{
return Json(data);
}
标记
@Html.EditorFor(m => m.somefield)
某些人确实在视觉上改变了它的价值。但是当我检查它的价值时,它不会得到更新。就像val(data.ID)没有注册到模型一样。由于我的代码,我无法调用ModelState.Clear()...
我使用这种方法的原因,而不是Ajax.Form和部分视图,是因为我在HTML.BeginForm(提交)中有所有标记,许多不同的下拉列表通过文本框通过AJAX进行交互,你不能嵌套带有HTML.BeginForm的Ajax.Form。因此,我无法通过Ajax.Form提交对模型的更改并调用ModelState.Clear()。
答案 0 :(得分:1)