2017-01-15 114 views
0

我正在做我的MVC應用程序。如何在我的視圖中創建一個按鈕,點擊它將從控制器運行一個功能。我還想從按鈕所在的視圖中傳遞數據。但我不想打開不同的視圖。我只想運行一個函數 - 按鈕「保存到文件」將視圖中的表保存到文件中 - 將打開目錄瀏覽器並將文件保存到磁盤上。MVC按鈕onClick

+0

您到目前爲止嘗試了哪些代碼?一個正常的ajax或表單提交給一個返回JSON數據或ParticalView的ActionResult應該像[這裏]顯示的一樣工作(http://stackoverflow.com/questions/12318905/mvc-razor-button-click-even-pass-parameter-與它)或[這裏](http://stackoverflow.com/questions/13822114/passing-parameters-to-controller-on-click-of-a-button) –

+0

你需要努力把一些代碼來獲得更好的迴應。看看Html.ActionLink。或者,您可以在控制器的View和MethodName方法中簡單地使用

+0

我同意其他朋友的看法。需要更多解釋!也請查看Html.RenderPartial。 –

回答

1

這將在您的視圖的ajax請求的幫助下完成。您需要添加一個簡單的按鈕,您的看法,並調用一個jQuery功能在其onclick事件是這樣的:

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

然後您可以創建的SaveToFile函數來發送Ajax請求是這樣的:在這裏你可以按照創建數據您需要發佈到控制器的字段。我只是增加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"); 
}