摘要:1:运行cmd,并定位到C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727(可以直接运行vs2005的命令提示工具,但是貌似vs2010默认指向的framework3.5里没有aspnet_regiis命令,为了避免有些人找不到,所以还是直接cmd比较好。)...
阅读全文
摘要:今天来翻,发现已经浏览到(500)800了,我说来过的哥们,这篇对你们有帮助吗,它有问题吗?请发表下!谢谢!这个问题的源头是1,[Bind(Exclude = "AlbumId")]public class Album[Bind(Exclude = "AlbumId")]表明bind的时候不会取AlbumId,不管你form里面是否有它。2,[ScaffoldColumn(false)] public int AlbumId { get; set; }导致生成的页面form里面没有包含AlbumId。解决办法大概有2个:第一步自然是给form加上Albu
阅读全文
摘要:1,导航区域通过母版页或者用户控件代理。 这部分通过读取后台提供的目录信息,动态生成链接, 目录信息包括controller,action,className以及其他属性。 大致的一个类为: public class NavigationEntity { public string ControllerName { get; set; } public string ActionName { get; set; } public string Name { get; set; } public string ClassName { get; set; } } view的代码为: <ul
阅读全文
摘要:使用asp.net异步执行请求的原因和好处,可以搜之,不赘叙。看一个同步抓取网页图片的方法:Public ContentResult GetPhotoByTag(string tag){ // Make a request to Flickr string url = string.Format(FlickrSearchApi, HttpUtility.UrlEncode(tag)); using (var response = WebRequest.Create(url).GetResponse()) { // Parse the response as XML Var xmlDoc = X
阅读全文
摘要:还记得之前做的自定义email地址合法性验证吗?public class ValidEmailAddressAttribute : RegularExpressionAttribute { private const string EmailPattern = ".+@.+\\..+"; public ValidEmailAddressAttribute() : base(EmailPattern) { // Default message unless declared on the attribute ErrorMessage = "{0} must be a
阅读全文
摘要:以实现[EqualToProperty] 为例。A,首先定义一个继承自ModelValidator的类并重写GetClientValidationRules方法。public class EqualToPropertyValidator : ModelValidator { // ... rest as before public override IEnumerable<ModelClientValidationRule> GetClientValidationRules() { var clientValidationRule = new ModelClientValidati
阅读全文
摘要:一般处理Asp.net mvc 可以依据model的 metadata 使用ModelValidator对象生产客户端验证脚本。使用方法为包括以下步骤:A,model使用Data Annotation attribute,B,然后在view上加一行:<% Html.EnableClientValidation(); %>注意语法格式,该方法返回的是void,所以用<% %>而不是<%: %>。C,引用js脚本<script type="text/javascript" src="<%: Url.Content(&qu
阅读全文
摘要:不管是通过action参数获取一个model,或者是手工calling UpdateModel()还是TryUpdateModel(),默认的DefaultModelBinder都将自动执行合法验证。但是,你用其他的方法更新model时,自动验证则会跳过。例如:public ActionResult MakeBooking(string clientName, DateTime? appointmentDate, bool acceptsTerms) { var appt = new Appointment { ClientName = clientName, AppointmentDate
阅读全文
摘要:除了DataAnnotationsModelValidationFactory,还有DataErrorInfoModelValidatorProvider。DataErrorInfoModelValidatorProvider提供另一种自定义数据合法性验证支持。Asp.net mvc硬编码支持IDataErrorInfo接口。使用方法为model实现IDataErrorInfo。IDataErrorInfo要求实现返回model级别和属性级别违法信息。示例:public class Appointment : IDataErrorInfo { public string ClientName
阅读全文
摘要:使用数据标签验证属性,control不用劳什子一一手工指定验证,在model binding期间,所有标记属性会自动启用验证,并把不合法信息登记进ModelState。View不需要任何变化。默认,asp.net mvc注册使用DataAnnotationsModelValidationFactory,它能识别的标签包括:[Range],[RegularExpression],[Required],[StringLength]。示例:public class Appointment { [Required(ErrorMessage = "Please enter your name&
阅读全文
摘要:Model和属性级别区分的概念需要参考这种场景:几个属性合一块来决定出一现合法信息属于model级,属性级则在纠缠在本身,比如int型必须是int型这种。 带来级别的概念是为了解释一种验证信息不好指定为某个属性上时的处理方案。View有两种显示异常的情况一种是summer(Html.ValidationSummary()),一种是each(Html.ValidationMessageFor())。属性界别用each一一对应,模块界别用summer。ModelState.AddModelError也支持key为空,key为空,则信息属于model级别。但是summer默认会显示已经包括在each
阅读全文
摘要:MVC 验证和异常处理 开篇及简单示例。 背景: MVC 验证和异常处理参考Pro ASP.NET MVC2 Framerowk Seciond Edition.Pdf,将会有书中示例出现在随笔中,或者由于个人能力问题,和原文有偏差。纯属个人加强记忆的随笔。欢迎指正。 开始第一篇 注册和 显示不合法验证信息MVC 用ModelState 存储Model在请求间发生的一系列信息,包括后台数据合法性验证 。让我们用一个例子来说明使用方法:后台定义个model和一个controlpublic class Appointment { public string ClientName { get; se
阅读全文