ASP.NET MVC是否使用常规工具箱控件?

时间:2009-05-21 18:50:50

标签: asp.net-mvc controls

在ASP.NET MVC中,我是否使用工具箱中的“常规”控件并像使用webforms一样将数据分配给它们?我可以使用gridview,例如吗?

谢谢。

编辑:答案似乎是否定的。那你用什么? Visual Studio中是否有像webform控件一样的拖放控件?

7 个答案:

答案 0 :(得分:8)

在大多数情况下,使用MVC显然不是拖放事件。没有一定程度的自动连接数据绑定控件。 MVC结构中的目的是更直接地控制标记。有一些辅助方法可用于渲染Form控件。 MVC是一个非常不同的服务器端开发模型。注意,您可以将ASP.Net与MVC结合成一个混合项目。

我建议您需要非常熟悉HMTL标记,以及HTTP + HTML通信如何工作以便成功使用MVC项目。使用javascript也非常明确。关于在后端和基于Web的应用程序中的前端分离关注点,MVC非常好。与前端渲染相比,这使得设计和测试后端逻辑变得更容易。它是Web开发人员的框架(基于Web的应用程序是第一个关注点),而不是Web前端的开发人员框架(基于ASP.Net控件)。

答案 1 :(得分:3)

ASP.Net MVC专注于使用您的视图模板生成您自己的HTML。您不能在视图中使用Webform控件,并让应用程序以与Webforms相同的方式处理它们。它们可能会正确呈现,但没有回发功能或维持其状态的概念。

话虽这么说,您也可以将ASP.Net Webforms与MVC样式页面集成在一起。您可以随时查看具有“混合”asp.net应用程序的经典Hanselman演练:http://www.hanselman.com/blog/PlugInHybridsASPNETWebFormsAndASPMVCAndASPNETDynamicDataSideBySide.aspx

答案 2 :(得分:1)

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

答案 3 :(得分:1)

答案是肯定而且不是。首先是

这是社区所担心的,将asp.net和MVC积极地融合到一个无法识别且不必要的复杂的kludge中。

对于任何关注MVC的人,我建议:

  • 欣赏干净简单的HTML。空 你的工具箱: - )
  • 浏览并了解如何编码控件 以你需要的方式生成 至。强类型,强大的HTML 发电机会来,但我更喜欢 它们要干净而不是包裹在一起 控制,我想看看代码。
  • 尽量不要混用asp.net和mvc( 诱人)但除非你被迫 来,认为这是一个禁忌

所以回答你的问题,MVC仍然是新的,MVC Contrib,MVC Futures和Html助手可以在框架和整个网络上使用。继续冲浪并保留自己的调整库然后发布,以便其他人可以找到并改进它们,反之亦然。 MVC可以是.net社区一直在等待的变化,让我们不要那么快地拖放。

祝你好运!

答案 4 :(得分:0)

不,任何使用__doPostBack JavaScript函数触发回发的控件都不起作用。 ASP.NET MVC中也没有ViewState的概念,因此任何依赖于ViewState或ControlState的控件都不起作用。

ASP.NET MVC背后的想法是采用与较重的WebForms模型(及其大多数控件)不同的方法。

答案 5 :(得分: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。

答案 6 :(得分:0)

WebForms工具箱中的某些控件在ASP.NET MVC中可以正常工作(尽管我相信GridView不是其中之一...)。关键是您不能使用依赖于

的控件
  • 回发(__doPostback() javascript函数)或
  • 视图状态

但是,我不确定你是否真的希望使用这些控件。 ASP.NET MVC的主要思想之一是重新获得对html标记的控制 - 这与GridView实际上没有关系。如果您希望使用可重复使用的网格布局来显示数据,我建议您使用PartialViewExtension Method HtmlHelper类,具体取决于数据的复杂程度。