2017-01-15 6 views
0

私はMVCアプリケーションを作成しています。どのように私のビュー内のボタンをクリックするとコントローラから機能を実行するボタンを作成するのですか?ボタンが入っているビューからデータを渡したいと思っていますが、私は別のビューを開きたくありません。私はちょうど機能を実行したい - "ファイルに保存"ボタンはビューからファイルにテーブルを保存する - ディレクトリブラウザを開き、ファイルをディスクに保存する。MVCボタンonClick

+0

これまでにどのようなコードを試しましたか?通常のAjaxやフォームはJSONデータを返すActionResultに提出するか、ParticalViewは[ここ]のように動作するはずです(http://stackoverflow.com/questions/12318905/mvc-razor-button-click-even-pass-parameter- with-it)または[ここ](http://stackoverflow.com/questions/13822114/passing-parameters-to-controller-on-click-of-a-button) –

+0

あなたはいくつかをまとめるために努力する必要がありますより良い応答を得るためのコード。 Html.ActionLinkを見てください。または、単にコントローラのViewとMethodNameメソッドで

+0

私は他の友達に同意します。もっと説明が必要!また、Html.RenderPartialもチェックしてください。 –

答えて

1

これは、あなたの意見からのajaxリクエストの助けを借りて行われます。あなたのビューに簡単なボタンを追加し、このようにそのonclickのイベントにjqueryの関数を呼び出す必要があります。

<input type="button" value="save to file" onclick="saveToFile()" /> 

次に、あなたはこのようにAJAXリクエストを送信するためにSaveToFileメソッド関数を作成することができます:ここでは、あたりとして、あなたのデータを作成することができますあなたがコントローラに投稿したいフィールドの必要性。私はデモのためにfirstFieldとsecondFieldを追加:

<script type="text/javascript"> 
    var data = { "firstField" : "value1", "secondField": "value2" }; 
    function saveToFile() { 
     $.ajax({ 
      url: "/ControllerName/ActionName", 
      type: "POST", 
      contentType: "application/json", 
      data: JSON.stringify(data), 
      success: function (data) { 

      }, 
      error: function (xhr) { 
       console.log(xhr); 
      } 
     }); 
    }); 
</script> 

あなたのアクションメソッドは次のようになります。

[HttpPost] 
public ActionResult UseShippingAddress(string firstField, string secondField) 
{ 
    //write your logic here to save the file on a disc    
    return Json("1"); 
}