它可能出现的Web窗体和MVC有很大的不同技术。但是,这两种技术是建立在 ASP.NET框架。因此,大多数ASP.NET框架的功能,您有用于创建应用程序都是基于Web的形式也可以提供给您作为发展中国家的MVC应用。这包括的功能,如成员资格,认证,角色和配置,它以同样的方式工作中的MVC应用因为它们在Web窗体应用程序。最ASP.NET命名空间,类和接口,可用于在ASP.NET MVC模式的应用。
ASP.NET框架的功能,不符合的MVC
由于ASP.NET的 MVC不保留状态信息通过使用视图状态,你必须寻找其他的方式来管理状态信息,如果您需要它。此外,服务器控件依赖于视图状态和传将无法正常工作设计在 ASP.NET MVC模式的应用。因此,你不应该使用的控制,如GridView ,直放站和DataList控件。
- //一个Student类:
- publicclassStudent
- {
- publicintNumber{get;set;}
- publicstringName{get;set;}
- }
- //DummyData构造的绑定数据如下:
- List<Student>students=newList<Student>();
- students.Add(newStudent{Name="lee",Number=123});
- students.Add(newStudent{Name="Zen",Number=234});
- students.Add(newStudent{Name="angle",Number=101});
- ViewData["Students"]=students;
在View中使用Repeater的问题其实就是绑定事件的执行,明确了这一点其实问题就很简单了.
我们设计一个View的基类,该基类在页面Load的时候完成DataBind,这样不管页面中有没有需要绑定的控件,需要绑定的控件是什么,这个方法执行完之后就会完成绑定.首先验证我们的想法:
- //View基类
- publicclassAutoBindViewPage:ViewPage
- {
- protectedoverridevoidOnLoad(EventArgse)
- {
- this.DataBind();
- base.OnLoad(e);
- }
- }
页面代码片段:
- <%@PageTitle=""Language="C#"MasterPageFile="~/Views/Shared/Site.
Master"Inherits="AutoBindViewPage"%>- <asp:ContentIDasp:ContentID="Content1"ContentPlaceHolderID=
"TitleContent"runat="server">- Helloworld
- </asp:Content>
- <asp:ContentIDasp:ContentID="Content2"ContentPlaceHolderID=
"MainContent"runat="server">- <h2>
- RepeaterTest</h2>
- <%=Html.Encode(ViewData["Students"])%><br/>
- <asp:RepeaterIDasp:RepeaterID="Repeater1"DataSource=
'<%#ViewData["Students"]%>'runat="server">- <ItemTemplate>
- Name:<%#Eval("Name")%><br/>
- </ItemTemplate>
- </asp:Repeater>
- </asp:Content>
以上是ASP.NET框架的功能与ASP.NET MVC模式的应用介绍
【编辑推荐】