2009-05-21 47 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社区一直在等待的改变,我们不要回头来拖拉和放下这么快。

祝你好运!