0

私はMVC3かみそりを使用してWebサイトを開発していますが、その状況は次のとおりです。

  1. コントローラ方式:
public ActionResult MyControllerMethod(int parameter){
    ''go to bd a do some staff
    IList<My_Custom> datafromDB = MyService.GetData(parameter);           

    'returns to my string tuped view
    return View(datafromDB );
}
  1. JavaScriptを使用する強い型付きビュー:
       @model IList<My_Custom>
        
        <script type="text/javascript">
        
         function getData()
         { 
           var parameter = document.getElementById('myParamater').value;  
    
           $.get('/MyController/MyControllerMethod/' + parameter, function (data) {
                                   
              loadData();
    
           }
           );
       }
       
        function loadData() 
        { 
          clearData();
              
          datos = @Html.Raw(Json.Encode(Model));  
          
          //do some stuff with datos
          
        }
    
        </script>

コントローラへのJavaScript呼び出しは正常に機能しますが、私の問題は、文字列型のビューが@modelの新しい値を取得していないように見えるため、同じ情報をロードし続けることです。

アクションコントローラーをデバッグしましたが、毎回異なるデータを返します。では、文字列型のビューのモデル値を更新する方法はありますか?

その行のデータ値も処理しようとしました

$.get('/MyController/MyControllerMethod/' + parameter, function (data) {

しかし、私はそれを成功させることができませんでした。

4

1 に答える 1

0

アクションリターンビュー、それが何も機能しない理由です。コードの仕組み:

  • 動作中のデータをロードしてから、ページ上でjsonを使用してビューを生成します
  • サーバーにリクエストを送信し、で受信htmlしますjson(このデータはすべてメモリ内にあります)。その後json、最初のステップからアクセスします

それがどのように機能しなければならないか:

  • ビューを作成する
  • サーバーにリクエストを送信します(別のメソッド、それを返すJson
  • アクセスdata
    public ActionResult YourJsonAction(intパラメーター)
    {{
        IList datafromDB = MyService.GetData(parameter);
        Json(datafromDB、JsonRequestBehavior.AllowGet);を返します。
    }

    関数getData()
    {{  
       var parameter = $('#myParamater')。val();   
       $ .get('/ MyController / YourJsonAction /'+パラメーター、関数(データ){
          //YourJsonActionからのデータ
       });
    }

于 2012-10-14T12:02:58.207 に答える