在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
MVC中的ViewData ASP.NET MVC默认使用WebForm来作为view。新建的aspx页面继承自ViewPage,所有的aspx页面都必须继承自ViewPage。我们再看一下ViewPage的部分代码:
public class ViewPage : Page, IViewDataContainer
第一:创建一个ViewPage<T>类:这个类主要是完成一个继承功能,对MvcContrib.FluentHtml.ModelViewPage,MvcContrib.FluentHtml.ModelViewUserControl的继承,实现System.Web.Mvc.ViewPage的功能。还有一个非常重要的作用就是把所有的扩展方法都体现在这个类中。类中using GuestBook.Common.HtmlHelpers;可以说明。
using GuestBook.Common.HtmlHelpers;
namespace GuestBook.Web { public class ViewPage<T> : MvcContrib.FluentHtml.ModelViewPage<T> where T : class { public ViewPage() { } } public class ViewUserControl<T> : MvcContrib.FluentHtml.ModelViewUserControl<T> where T : class { public ViewUserControl() { } } } 1:创建扩展类:HtmlHelperExtensions,主要包含两个方法,一个是操作成功后的处理方法,另一个则是失败后的处理结果。
public static class HtmlHelperExtensions
{ public static string ErrorBox(this HtmlHelper htmlHelper, ViewDataBase errorViewData) { if (errorViewData.ErrorMessage == null) return string.Empty; HtmlTextWriter writer = new HtmlTextWriter(new StringWriter()); writer.AddAttribute("class", "error"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.Write(errorViewData.ErrorMessage); writer.RenderEndTag(); return writer.InnerWriter.ToString(); } public static string MessageBox(this HtmlHelper htmlHelper, ViewDataBase messageViewData) { if (messageViewData.Message == null) return string.Empty; HtmlTextWriter writer = new HtmlTextWriter(new StringWriter()); writer.AddAttribute("class", "message"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.Write(messageViewData.Message); writer.RenderEndTag(); return writer.InnerWriter.ToString(); } }
public class ViewDataBase
{ public string Message { get; set; } public string ErrorMessage { get; set; } public ViewDataBase WithErrorMessage(string errorMessage) { this.ErrorMessage = errorMessage; return this; } public ViewDataBase WithMessage(string message) { this.Message = message; return this; } }
public class GuestBookInfo : ViewDataBase
{ public string sTitle { get; set; } public string sContent { get; set; } public int ID { get; set; } }
<% =Html.MessageBox (Model)%>
|
请发表评论