... ... <div id = "stuff"></div> <script type = "text/javascript"> do things to "stuff" div as soon as X.ascx is loaded. "> ... ... <div id = "stuff"></div> <script type = "text/javascript"> do things to "stuff" div as soon as X.ascx is loaded. "> ... ... <div id = "stuff"></div> <script type = "text/javascript"> do things to "stuff" div as soon as X.ascx is loaded. " />

ASP.NET MVC 3 - ビューデータの値を取得するためにpartialviewに指示しますか?

私はこのように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を返していましたが、stuff divにはそういうことをしないインラインjavascriptがありました。つまり、X.ascxがリロードされたときにインラインjavascriptが実行されないだけです。

私のコントローラでPartialViewを返すことはできませんが、ViewDataの値を更新し、PartialViewに更新されたViewData値を再取得させる方法はありますか?また、サーバーからの応答に基づいて、1つまたは2つのjavascript関数を呼び出すこともできます。

0
あなたはajaxキャッシングを無効にして、それがどのように動作するか見ることができます。これを行う方法は次のとおりです。$ .ajaxSetup({cache:false})
追加された 著者 CoffeeCode,

1 答え

私は行く可能性が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/ を参照してください。結果を処理する

0
追加された