我想從視圖傳遞數據表到控制器中的方法。當我嘗試從Controller訪問DataTable時,我得到一個NullReference異常。從視圖傳遞數據表到新的控制器方法
DataTable中填充的觀點,我可以通過在視圖中運行此代碼確認:
@{
Debug.WriteLine("########DATATABLE COLUMNS########");
foreach (DataColumn column in Model.Columns) {
Debug.WriteLine(column.ToString());
}
}
這將返回DataTable的列。當我嘗試發送此數據表的控制器:
<a href="@Url.Action("expExcel", "Home", new {dt = Model})">export to excel...</a>
在控制器的方法:
public ActionResult expExcel(DataTable dt) {
Debug.WriteLine("########DATATABLE COLUMNS########");
foreach (DataColumn column in Model.Columns) {
Debug.WriteLine(column.ToString());
}
//some more code...
}
原因此錯誤:
System.NullReferenceException
當我嘗試存取權限的發生的錯誤DataTable dt。
如何將DataTable從視圖傳遞到新的Controller方法?
我已經看到關於這個問題的其他帖子,到目前爲止還沒有答案,這可能是因爲這些問題在這些情況下太具體。我在這篇文章中試圖推廣更多。
你不能像這樣從視圖中發送數據表的行動。我使用一個列表這個purpuse和發送數據的表單。 –
Mashtani
@ Janneman96你可以爲你的視圖顯示你的GET操作方法嗎?將DataTable作爲你的模型是很奇怪的。它應該是這樣的http://www.c-sharpcorner.com/UploadFile/rahul4_saxena/export-data-table-to-excel-in-Asp-Net-mvc-4/,對於模型使用IEnumerable。 –
stenlytw
@bounces謝謝,這看起來像我需要的解決方案,我現在要嘗試。 – Janneman96