在ASP.NET MVC中,我是否使用工具箱中的“常规”控件并像使用webforms一样将数据分配给它们?我可以使用gridview,例如吗?
谢谢。
编辑:答案似乎是否定的。那你用什么? Visual Studio中是否有像webform控件一样的拖放控件?答案 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的人,我建议:
所以回答你的问题,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
实际上没有关系。如果您希望使用可重复使用的网格布局来显示数据,我建议您使用PartialView
或Extension Method
HtmlHelper
类,具体取决于数据的复杂程度。