在ASP.NET MVC中,是否使用工具箱中的“常规”控件并将数据分配给它们,就像我使用webforms一样?例如,我可以使用gridview吗?ASP.NET MVC是否使用常规工具箱控件?
谢谢。
编辑:答案似乎是否定的。那么你用什么?在Visual Studio中是否有像Webform控件一样的拖放控件?
在ASP.NET MVC中,是否使用工具箱中的“常规”控件并将数据分配给它们,就像我使用webforms一样?例如,我可以使用gridview吗?ASP.NET MVC是否使用常规工具箱控件?
谢谢。
编辑:答案似乎是否定的。那么你用什么?在Visual Studio中是否有像Webform控件一样的拖放控件?
大多数情况下,使用MVC显然不是拖放事件。没有一定程度的自动布线数据绑定控制。 MVC结构的目的是更直接地控制标记。有一些帮助器方法可以用于渲染表单控件。 MVC是服务器端非常不同的开发模式。注意,你可以将ASP.Net和MVC结合成一个混合项目。
我建议您需要对HMTL标记感到满意,以及HTTP + HTML通信如何在MVC项目中取得成功。 javascript的使用也非常明确。关于从后端分离问题和基于Web的应用程序的前端,MVC非常好。与前端渲染相比,这样可以更轻松地设计和测试后端逻辑。它是一个Web开发人员的框架(基于Web的应用程序是第一个关注的问题),而不是Web前端(基于ASP.Net控件)的开发人员框架。
我相信你可以使用任何不依赖回发功能的控件。
不,任何使用__doPostBack
JavaScript函数触发回发的控件都不起作用。在ASP.NET MVC中也没有ViewState
的概念,所以任何依赖于ViewState或ControlState的控件都无法工作。
ASP.NET MVC背后的想法是采取与较重的WebForms模型(及其大多数控件)不同的方法。
您无法直接在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。
在ASP.NET MVC中,WebForms工具箱中的一些控件将工作得很好(虽然我相信GridView
不是其中之一...)。该键是,我不知道,你真的你不能使用依赖于任何
__doPostback()
JavaScript函数)控制,或然而想要使用这些控件。 ASP.NET MVC的主要想法之一是在您的html标记中重新获得控制权 - 对于GridView
您确实没有。如果您想要具有可重复使用的网格布局来呈现数据,我建议根据数据的复杂性使用PartialView
或Extension Method
到HtmlHelper
类。
ASP.Net MVC专注于使用视图模板生成自己的HTML。您不能在视图中使用Webform控件,并让应用程序像使用Webforms一样处理它们。他们可能会正确渲染,但没有回传功能或保持其状态的概念。
也就是说,您可以将ASP.Net Webforms与您的MVC样式页面集成在一起。您可以随时查看具有“混合”asp.net应用程序的经典Hanselman漫游:http://www.hanselman.com/blog/PlugInHybridsASPNETWebFormsAndASPMVCAndASPNETDynamicDataSideBySide.aspx
答案是Yes和No. Preferrably号
这是社会的恐惧,asp.net和MVC的激进混合成一个无法识别和unecessarily复杂的组装机。
对于任何人在看MVC,我建议:
因此,要回答你的问题,MVC仍然是新,MVC的Contrib ,MVC Futures和Html助手都可以在框架和网络上使用。继续冲浪并保留自己的调整库,然后发布它们,以便其他人可以找到并改进它们,反之亦然。 MVC可以是.net社区一直在等待的改变,我们不要回头来拖拉和放下这么快。
祝你好运!
这让我怀疑他们是否得到了更大的发展观众或者失去了一些人。这似乎甚至与其他所有人一起使用除Visual Studio之外的MVC框架作为IDE。 – johnny 2009-05-21 19:10:56