1

私はこのフォームを持っています

@using (Ajax.BeginForm("opImportFile", "Operacao", new AjaxOptions { HttpMethod = "POST",
OnSuccess = "LimparCampos('true')", OnFailure = "LimparCampos('false')" }, 
new { id = "formUpdStoringSettings" }))
{ ... }

trueまたはfalseの代わりに、/ Operacao/opImportFileによって返された文字列を渡したい

これは可能ですか?

4

3 に答える 3

1

ドキュメントに基づいて、コールバックは返されたajaxコンテンツとともに提供され、それ自体に「get_data()サーバーからの応答を取得するメソッド」があります。

あなたの定義では、おそらくコールバックメソッドを指す必要があり、実際にそれを自分で呼び出す必要はありません(つまり、パラメータを含めないでください)。

OnSuccess = "LimparCampos"
于 2012-12-14T18:51:27.623 に答える
1

私はAjaxFormの使用を避けたいと思っています。私は通常のフォームを作成し、フォームの投稿を個別に処理するためのJavaScriptを用意します。シンプルでクリーン。

@using(Html.Beginform("opImportFile","Operaco"))
{
  //some elements here
  <input type="submit" value="Save" id="btnSave" />
}

そして、フォームをajaxifiedバージョンに送信するためのJavaScript

$(function(){
  $("#btnSave").click(function(e){
     var _form=$(this).closest("form");
     e.preventDefault();
     $.post(_form.attr("action"),_form.serialize(),function(response){
         // now response variable has the return item from the action method.
         // and do some fun stuff with that.
         alert(response);

     });
  });
});

アクションメソッドから何でも返すことができます。文字列、JSON、または部分ビュー。

于 2012-12-14T19:05:52.187 に答える
0

次のようにコールバック関数を設定してみてください。

OnSuccess = "LimparCampos"

とデータにアクセスします:

  function LimparCampos(response) {
     var jsonResult = response.get_response().get_object();

  }
于 2012-12-14T18:57:31.633 に答える