ASP.NET MVC Pass模型从视图到控制器

时间:2011-07-18 13:08:23

标签: javascript asp.net-mvc

我需要在点击按钮时将视图的当前模型从视图传递到控制器。

这是将当前数据导出到Excel。

最好的方法是什么?我一直试图将模型从视图传递到JS函数中:

onclick = "ExportToExcel(this.Model);"

但是,数据作为未定义传递给JS。我做错了什么?

感谢。

3 个答案:

答案 0 :(得分:1)

模型在到达控制器的视图后(最初在页面加载时)不再可访问,我的意思是它有点不再存在,你可以说Object。因此,您无法直接将模型传递回JS / Controller。如果要将任何特定数据从Model传递给JS,可以通过在隐藏输入中实际“写”数据并使用jQuery的输入id从Java Script访问它来实现。

PS:我知道这是一个非常古老的问题,但我只是想知道我是否正确。 :)

答案 1 :(得分:0)

onclick代码将在全局范围内运行this === window

我认为window.Modelundefined

尝试

element.onclick = function() {
  ExportToExcel(this.Model);
};

对于记录,将数据导出到excel应该在服务器上完成,并且应该返回一个指向excel文件的链接,该文件可以在用户可以下载的服务器上临时创建

答案 2 :(得分:0)

您可以使用jQuery发布您的模型对象,并且正如@Raynos所说,获取下载链接。 为此,您需要将模型(cs / vb)转换为javascript。