我正在制作我的MVC应用程序。如何在我的视图中创建一个按钮,单击它将从控制器运行一个功能。我还想从按钮所在的视图中传递数据。但我不想打开不同的视图。我只想运行一个函数 - 按钮“保存到文件”将表格从视图保存到文件中 - 将打开目录浏览器并将文件保存在磁盘上。
答案 0 :(得分:1)
这将在您查看的ajax请求的帮助下完成。您需要在视图上添加一个简单的按钮,并在其onclick事件上调用jquery函数,如下所示:
<input type="button" value="save to file" onclick="saveToFile()" />
然后你可以创建saveToFile函数来发送这样的ajax请求:在这里你可以根据你想要发布到控制器的字段的需要来创建你的数据。我只是为demo添加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");
}
答案 1 :(得分:0)
显然,正确的解决方案是使用
@Html.ActionLink("weekly - PDF", "GenerateTable", "Account", new { group_id = Model.group_id, class_id = Model.class_id, type = 1 }, null)
在GenerateTable
方法中只返回一个正确的文件。