2013-05-16 34 views
1

我創建了一個ASP.NET MVC 4 Web應用程序使用Visual C#,並與 「剃刀」 選項顯示查詢結果有效地在剃刀

HomeController.cs

public ActionResult Tasks() 
    { 
     ViewBag.Message = "Tasks"; 

     string selectSql = "select * from Tasks"; 

     string connectionString = @"Data Source=lpc193\adamssqlserver;Database=master;Integrated Security=True;"; 

     DateTime strt; 

     using (var cn = new SqlConnection(connectionString)) 
     using (var cmd = new SqlCommand(selectSql, cn)) 
     { 
      cn.Open(); 

      using (var reader = cmd.ExecuteReader()) 
      { 
       if (reader.Read()) 
       { 
        strt = reader.GetDateTime(reader.GetOrdinal("Start")); 
       } 
      } 
     } 

     return View(); 
    } 

任務。 CSHTML

@{ 
    ViewBag.Title = "Tasks To Complete"; 
} 

These are the tasks from the table 

<!-- some datagrid object here ?? --> 

我有以下SQL Server 2012數據庫表LAYO UT

enter image description here

我能夠查詢表就好了單獨拉出每個字段的值。

我想要做的是在用戶的DataGridView中顯示結果集(包含來自select *查詢的所有字段)。我可以很容易地將每個值放入一個TR TD中,然後將其放入一個字符串中,並將其顯示在.cshtml端......但這並沒有真正教會我什麼,我懷疑它的效率。

備註找到Razor的相關信息並顯示查詢中的數據非常困難。是因爲它的新功能,還是Razor爲了C#新手而避免的事情?

+0

傳遞您的數據模型,並在客戶端動態建立網格,通過在Razor視圖模型項目迭代發動機。將所需的值提取到合適的單元格,就這些了。請記住只向客戶傳遞您真正想要使用的數據。不要讓冗餘信息過多而導致網頁渲染速度變慢。充其量,不要在服務器端使用'select *'來從數據庫中檢索數據 - 應用一些限制來縮小要獲取的數據。 – jwaliszko

回答

0

這不是剃鬚刀視圖引擎的錯,它更多的是整個ASP.Net MVC的缺點。

與Webforms不同,ASP.Net MVC 不提供服務器端控件,它們被自動轉換爲HTML。所以基本上你必須手工製作所有的HTML

當然,還有一些內置的類HTML助手可以幫助您使用常見的HTML內容(請參閱http://msdn.microsoft.com/en-us/library/dd493063(v=vs.108).aspx)。

但不幸的是沒有內置的幫助程序爲網格生成HTLM。

你可以建立你自己的(是的,手動編寫幫助類,它將完成所有td/tr作業...)或使用現有的解決方案。 見例如: