asp.net mvc 提交model 接收不了

时间:2023-12-30 17:44:50

[HttpPost]
        //[ValidateInput(false)]
        public ActionResult AddNews1(_54Young_News_Model.model.gou54contentall contentmodel, _54Young_News_Model.model.gou54user usermodel)
        {}

发现用一些特殊符号提交不了, 然后以为说前端问题,把model去掉就可以了。 后面觉得是因为有特殊符号影响到转model。

写了一个request转model,但还是报错。

/// <summary>
        /// 请求的request的内容转换为model
        /// cza
        /// 2016-5-30 19:06:21
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public static T ConvertToModel()
        {
            HttpContext context=System.Web.HttpContext.Current;
            T t = new T();
            PropertyInfo[] propertys = t.GetType().GetProperties();
            foreach (PropertyInfo pi in propertys)
            {
                if (!pi.CanWrite)
                    continue;
                try
                {
                    object value = context.Request[pi.Name];
                    if (value != null && value != DBNull.Value)
                    {

if (value.ToString() != "")
                            pi.SetValue(t, Convert.ChangeType(value, pi.PropertyType), null);//这一步很重要,用于类型转换
                        else
                            pi.SetValue(t, value, null);

}
                }
                catch
                { }
            }

return t;
        }

在网上查资料看到可以在web.config添加,但是觉得全局的太危险了。

<system.web> 
<pages validaterequest="false"/> 
</system.web>

后看到那个可以在方法前面添加这个免验证的方法

[HttpPost]
        [ValidateInput(false)]
        public ActionResult AddNews1(_54Young_News_Model.model.gou54contentall contentmodel, _54Young_News_Model.model.gou54user usermodel)
        {

}