2009-05-21 135 views
5

在ASP.NET MVC中,是否使用工具箱中的「常規」控件並將數據分配給它們,就像我使用webforms一樣?例如,我可以使用gridview嗎?ASP.NET MVC是否使用常規工具箱控件?

謝謝。

編輯:答案似乎是否定的。那麼你用什麼?在Visual Studio中是否有像Webform控件一樣的拖放控件?

回答

6

大多數情況下,使用MVC顯然不是拖放事件。沒有一定程度的自動佈線數據綁定控制。 MVC結構的目的是更直接地控制標記。有一些幫助器方法可以用於渲染表單控件。 MVC是服務器端非常不同的開發模式。注意,你可以將ASP.Net和MVC結合成一個混合項目。

我建議您需要對HMTL標記感到滿意,以及HTTP + HTML通信如何在MVC項目中取得成功。 javascript的使用也非常明確。關於從後端分離問題和基於Web的應用程序的前端,MVC非常好。與前端渲染相比,這樣可以更輕鬆地設計和測試後端邏輯。它是一個Web開發人員的框架(基於Web的應用程序是第一個關注的問題),而不是Web前端(基於ASP.Net控件)的開發人員框架。

+1

這讓我懷疑他們是否得到了更大的發展觀衆或者失去了一些人。這似乎甚至與其他所有人一起使用除Visual Studio之外的MVC框架作爲IDE。 – johnny 2009-05-21 19:10:56

1

我相信你可以使用任何不依賴回發功能的控件。

0

不,任何使用__doPostBack JavaScript函數觸發回發的控件都不起作用。在ASP.NET MVC中也沒有ViewState的概念,所以任何依賴於ViewState或ControlState的控件都無法工作。

ASP.NET MVC背後的想法是採取與較重的WebForms模型(及其大多數控件)不同的方法。

0

您無法直接在ASP.NET MVC中使用WebForms控件。
但是你可以在HTML助手中包裝任何控件。

實施例一個GridView:

public static class MvcGrid 
    { 
     public static string MyGrid(this HtmlHelper helper) 
     { 
      var grid = new GridView(); 
      var source = new[] 
          { 
           "Foo", 
           "Bar", 
          }; 
      grid.DataSource = source; 
      grid.DataBind(); 
      var stringWriter = new StringWriter(); 
      var writer = new HtmlTextWriter(stringWriter); 
      grid.RenderControl(writer); 

      return stringWriter.ToString(); 
     } 
    } 

但是,這將不能用作一個WebForm GridView的。
它僅用於呈現HTML。

0

在ASP.NET MVC中,WebForms工具箱中的一些控件將工作得很好(雖然我相信GridView不是其中之一...)。該鍵是,我不知道,你真的你不能使用依賴於任何

  • 回發(該__doPostback() JavaScript函數)控制,或
  • 視圖狀態

然而想要使用這些控件。 ASP.NET MVC的主要想法之一是在您的html標記中重新獲得控制權 - 對於GridView您確實沒有。如果您想要具有可重複使用的網格佈局來呈現數據,我建議根據數據的複雜性使用PartialViewExtension MethodHtmlHelper類。

3

ASP.Net MVC專注於使用視圖模板生成自己的HTML。您不能在視圖中使用Webform控件,並讓應用程序像使用Webforms一樣處理它們。他們可能會正確渲染,但沒有回傳功能或保持其狀態的概念。

也就是說,您可以將ASP.Net Webforms與您的MVC樣式頁面集成在一起。您可以隨時查看具有「混合」asp.net應用程序的經典Hanselman漫遊:http://www.hanselman.com/blog/PlugInHybridsASPNETWebFormsAndASPMVCAndASPNETDynamicDataSideBySide.aspx

1

答案是Yes和No. Preferrably號

這是社會的恐懼,asp.net和MVC的激進混合成一個無法識別和unecessarily複雜的組裝機。

對於任何人在看MVC,我建議:

  • 欣賞乾淨簡單的HTML。空 出你的工具箱:-)
  • 衝浪,並學習如何編寫控件 生成你需要他們的方式 到。強類型,強大的html發電機將來,但我寧願 他們是乾淨的,不包裹在 控制,我想看看代碼。
  • 儘量不要混用asp.net和MVC( 誘人的),但除非你不得不 來,認爲這是一個沒有沒有

因此,要回答你的問題,MVC仍然是新,MVC的Contrib ,MVC Futures和Html助手都可以在框架和網絡上使用。繼續衝浪並保留自己的調整庫,然後發佈它們,以便其他人可以找到並改進它們,反之亦然。 MVC可以是.net社區一直在等待的改變,我們不要回頭來拖拉和放下這麼快。

祝你好運!

相關問題