0

次のような部分的なビュー X.ascx があるとします。

<div id = "updateTargetIdForAjaxForm">
... javascript code which only has function definitions.
... ajax form with buttons inside
    <div id = "stuff"></div>
    <script type = "text/javascript">
       do things to "stuff" div as soon as X.ascx is loaded. 
    </script>
</div>

ここで、Ajax 応答に基づいて、X.ascx を更新したいと思います。以前は PartialView を返していましたが、div を処理するインライン JavaScript はそれを好まないため、X.ascx がリロードされたときにインライン JavaScript が実行されません。

コントローラーで PartialView を返さずに、ViewData 値を更新し、PartialView に更新された ViewData 値を再取得するように指示する方法はありますか? また、サーバーからの応答に基づいて 1 つまたは 2 つの JavaScript 関数を呼び出しますか?

4

1 に答える 1

0

次の 2 つの方法が考えられます。

動的にロードされた部分ビューで実行するように JavaScript コードを修正します。

この2つがあなたを助けてくれるはずです。

もう 1 つの方法は、コントローラーで JSON の結果を返すアクションを作成し、jQuery から JSON オブジェクトを処理してフォームを更新できるようにすることです。アクションは次のようになります。

public JsonResult GetFormValues()
{
    var jsonFormValues = new
    {

        key1 = "abc",
        key2 = "123",
        key3 = "abcdef"

    };
    return Json(jsonFormValues, JsonRequestBehavior.AllowGet);
}

結果の処理方法についてはhttp://api.jquery.com/jQuery.getJSON/をご覧ください

于 2011-11-25T08:21:52.327 に答える