如何在Asp.Net mvc中使用Datatable代替實體框架?DataTable代替Asp.Net MVC中的實體框架MVC
我指的是本教程在asp.net網站.... http://www.asp.net/Learn/mvc/tutorial-21-cs.aspx ....我可以返回一個數據表,而不是電影或movielist對象?
如何在Asp.Net mvc中使用Datatable代替實體框架?DataTable代替Asp.Net MVC中的實體框架MVC
我指的是本教程在asp.net網站.... http://www.asp.net/Learn/mvc/tutorial-21-cs.aspx ....我可以返回一個數據表,而不是電影或movielist對象?
如果可以將其存儲(序列化)到ViewData中,您可以返回任何想要的結果。關於ASP.NET MVC沒有什麼「魔術」限制了值和/或類型。
如果你想遍歷視圖中的DataTable,把它放在控制器的ViewData中,在View中檢索它,並像在其他任何地方一樣遍歷它。
所以類似下面的東西應該工作:
<%
var tbl = ViewData["MyDataTable"];
foreach (DataRow row in tbl.Rows)
{
foreach (DataColumn col in tbl.Columns)
{
Response.Write(row[col] as string ?? string.Empty);
}
}
%>
如果我正確理解你的問題,只是因爲你使用MVC,你不必使用實體框架與數據庫進行通信。
在控制器內部,您可以使用任何方法從數據庫中獲取數據。然後,您可以將該數據轉換爲傳遞給View的自定義對象,也可以將DataTable傳遞給您的視圖。
你的觀點只是要知道如何遍歷你傳遞給它的對象。但是,我建議使用POCO對象傳遞給您的視圖,以便您不會將視圖數據與用於從數據庫中提取信息的技術緊密結合。
這很適合回答他的問題,但我不建議將DataTables(或實體)傳遞給視圖,因爲它將視圖與用於從數據庫中獲取數據的技術緊密結合在一起。在我看來,使用POCO對象更好。 – 7wp 2009-08-30 14:35:42
它在MVC中不叫ViewState,它叫做ViewData。我同意Roberto的觀點,您應該將包含您需要的數據的對象傳遞給您的視圖。不要只傳遞一個DataTable。 – BFree 2009-08-30 15:56:28
是的。在我的部分錯別字。我同意羅伯託。我一直在與一個更舊的繼承應用程序戰鬥,Viewstate在我心中。現在修復代碼/評論。 – andymeadows 2009-08-30 22:27:36