0

基本的に、ドロップダウンリストから値を取得し、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)

somefieldは、その値を視覚的に変更します。しかし、その値を調べても更新されません。val(data.ID)がモデルに登録されていないかのようです。私のコードのため、ModelState.Clear()も呼び出すことができません...

Ajax.Formや部分ビューではなく、このアプローチを使用する理由は、HTML.BeginForm(送信される)内にすべてのマークアップがあり、AJAXを介してテキストボックスを介して相互作用するさまざまなドロップダウンリストがあり、Ajax.Formをネストできないためです。 HTML.BeginFormを使用します。したがって、Ajax.Formを介してモデルに変更を送信し、ModelState.Clear()を呼び出すことはできません。

4

1 に答える 1

1

.val()変更を要素に反映させる場合は、要素のvalueプロパティを設定しますvalue attr use.attr()

$('#somefield').attr('value', data)
于 2013-01-05T20:02:06.243 に答える