首页 新闻 会员 周边 捐助

centos mono 运行ASP.NET MVC3模型验证的错误,请高手指点!

0
悬赏园豆:100 [已解决问题] 解决于 2012-11-16 16:47

服务器环境:Centos mono2.10.8 

出错页面详细描述:出错页面的实体层加了Model验证,部分代码如下:

 /// <summary>
        /// 新闻Id
        /// </summary>
        [Required(ErrorMessage = " 新闻Id不能为空!")]
        [RegularExpression(@"[\d]*", ErrorMessage = "新闻Id格式不正确")]
        public int NewsId { get; set; }

        /// <summary>
        /// 分类
        /// </summary>
        [Required(ErrorMessage = " 分类不能为空!")]
        [RegularExpression(@"[\d]*", ErrorMessage = "分类格式不正确")]
        public int CategoryId { get; set; }

        /// <summary>
        /// 新闻标题
        /// </summary>
        [Required(ErrorMessage = " 新闻标题不能为空!")]
        [StringLength(45, ErrorMessage = " 新闻标题长度为45位之内!")]
        public string Title { get; set; }

        /// <summary>
        /// Tag
        /// </summary>
        [StringLength(45, ErrorMessage = " Tag长度为 45位之内!")]
        public string Tag { get; set; }

        /// <summary>
        /// 新闻摘要
        /// </summary>

        [StringLength(45, ErrorMessage = " 新闻摘要长度为 45位之内!")]
        public string Summary { get; set; }

错误截图:

补充:经过测试,我在实体层去掉了模型验证代码就一切正常,正常代码如下:

/// <summary>
        /// 新闻Id
        /// </summary>
        public int NewsId { get; set; }

        /// <summary>
        /// 分类
        /// </summary>
        public int CategoryId { get; set; }

        /// <summary>
        /// 新闻标题
        /// </summary>
        public string Title { get; set; }

        /// <summary>
        /// Tag
        /// </summary>

        public string Tag { get; set; }

        /// <summary>
        /// 新闻摘要
        /// </summary>
        public string Summary { get; set; }
老齐编程的主页 老齐编程 | 初学一级 | 园豆:137
提问于:2012-11-09 14:25
< >
分享
最佳答案
0
收获园豆:40
az235 | 大侠五级 |园豆:8483 | 2012-11-09 14:55

这个我看过了,没给我带来什么帮助,请问能不能解决啊?怎么解决啊?

老齐编程 | 园豆:137 (初学一级) | 2012-11-09 17:05
其他回答(4)
0

你打断点,看能不能跳跳到那个方法?

收获园豆:15
学学学习 | 园豆:427 (菜鸟二级) | 2012-11-09 14:34

布曙在服务器上,无法调试

支持(0) 反对(0) 老齐编程 | 园豆:137 (初学一级) | 2012-11-09 17:05
0

应该是mono在装箱拆箱的时候出错了,mono有个小bug,在object装箱拆箱的时候

收获园豆:15
alienblog | 园豆:332 (菜鸟二级) | 2012-11-09 14:56

请问怎么解决啊

支持(0) 反对(0) 老齐编程 | 园豆:137 (初学一级) | 2012-11-09 17:04
0

看看mono版System.ComponentModel.DataAnnotations.RegularExpressionAttribute.IsValid方法的源码,这是CLR的:

 

public override bool IsValid(object value)
{
    this.SetupRegex();
    string str = Convert.ToString(value, CultureInfo.CurrentCulture);
    if (string.IsNullOrEmpty(str))
    {
        return true;
    }
    Match match = this.Regex.Match(str);
    return ((match.Success && (match.Index == 0)) && (match.Length == str.Length));
}

 

 

 

 

 

收获园豆:15
alby | 园豆:323 (菜鸟二级) | 2012-11-10 00:07
0

你的View层不要用EditFor,用TextFor。

收获园豆:15
hexllo | 园豆:318 (菜鸟二级) | 2012-11-12 17:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册