2017-01-15 110 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"); 
}