Modelstate不通过Jquery POST从JSON更新值

时间:2013-01-05 19:48:36

标签: c# asp.net-mvc jquery

基本上我从下拉列表中获取一个值,并通过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()。

1 个答案:

答案 0 :(得分:1)

如果您希望将更改反映在元素值attr use .attr()

中,则

.val()设置元素的value属性

$('#somefield').attr('value', data)