using System; using System.Collections.Generic; using System.Text; using System.Web; using Zhaizj.Framework.Web; namespace Zhaizj.Framework { /// /// 对结果信息的封装(有效或错误),在ORM和MVC中经常被使用 /// public class Result { private Boolean _autoShow; private List _errors; private String _errorsHtml; private String _errorsText; private String _errorsJson; private Object _Info; public Result() { _autoShow = true; _errors = new List(); } /// /// 根据错误信息构建 result /// /// public Result( String errorMsg ) { //_autoShow = true; _errors = new List(); _errors.Add( errorMsg ); } /// /// 添加错误信息 /// /// public void Add( String errorMsg ) { _errors.Add( errorMsg ); } /// /// 合并结果信息 /// /// public void Join( Result result ) { foreach (String str in result.Errors) { Add( str ); } } /// /// 是否自动显示(默认都是自动显示的,比如表单验证发生错误会自动显示在表单上方) /// public Boolean AutoShow { get { return _autoShow; } set { _autoShow = value; } } /// /// 获取所有错误信息的列表 /// public List Errors { get { return _errors; } set { _errors = value; } } /// /// html 格式的错误信息(封装在一个class=Zhaizj.FrameworkValidationResultList的无序列表ul中) /// public String ErrorsHtml { get { if (IsValid) return null; if (_errorsHtml == null) { StringBuilder builder = new StringBuilder( "
    " ); for (int i = 0; i < Errors.Count; i++) { builder.Append( "
  • " ); builder.Append( Errors[i] ); builder.Append( "
  • " ); } builder.Append( "
" ); _errorsHtml = builder.ToString(); } return _errorsHtml; } } /// /// 纯文本格式的错误信息,包括换行符。 /// public String ErrorsText { get { if (IsValid) return null; if (_errorsText == null) { StringBuilder builder = new StringBuilder(); for (int i = 0; i < Errors.Count; i++) { builder.Append( Errors[i] ); builder.Append( Environment.NewLine ); } _errorsText = builder.ToString(); } return _errorsText; } } /// /// Json 格式的错误信息。格式 {"IsValid":false, "Msg":"请填写作者名称,请填写评论内容,验证码错误"} /// public String ErrorsJson { get { if (IsValid) return "{}"; if (_errorsJson == null) { // 格式 {"IsValid":false, "Msg":"请填写作者名称,请填写评论内容,验证码错误"} StringBuilder builder = new StringBuilder( ); builder.Append( "{" ); builder.Append( "\"IsValid\":false, \"Msg\":\"" ); for (int i = 0; i < Errors.Count; i++) { builder.Append( Errors[i].Replace( "\"", "'" ) ); if (i < Errors.Count - 1) builder.Append( "," ); } builder.Append( "\"}" ); _errorsJson = builder.ToString(); } return _errorsJson; } } /// /// 附带的对象 /// public Object Info { get { return _Info; } set { _Info = value; } } /// /// 结果是否包含错误 /// public Boolean HasErrors { get { return (Errors.Count > 0); } } /// /// 结果是否全部正确有效 /// public Boolean IsValid { get { return !HasErrors; } } private static Boolean isWeb { get { return SystemInfo.IsWeb; } } } }