Ajax.BeginForm 客户端验证问题

空格键 2013-01-30 10:34:12
当采用Ajax.BeginForm 提交表单时,
如果在controller中验证:ModelState.AddModelError("UserName", "必须填写");
提交表单后,对应的输入框后面没有显示 “必须填写” 的信息。

如果是直接用 ValidationAttribute 在UserName 属性的话,就可以显示。

不知道有什么方法在使用 Ajax.BeginForm + ModelState.AddModelError("Key", "msg"); 时,可以显示验证信息的方法??????
...全文
191 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jakgong 2013-01-30
  • 打赏
  • 举报
回复
恭喜接点分哈
夜色镇歌 2013-01-30
  • 打赏
  • 举报
回复
引用 5 楼 ThinkRicher 的回复:
搞定! 将要填写的文本框框那些做成一个 partialview, cotroller 里返回partialview 就可以了 前台代码: XML/HTML code?123456789101112@model WebSite.Models.Site_GuestBook@section header{ <script src="@Url.Content……
如果有编辑器。内容量比较大的话。。。。。还是建议用js验证
空格键 2013-01-30
  • 打赏
  • 举报
回复
搞定! 将要填写的文本框框那些做成一个 partialview, cotroller 里返回partialview 就可以了 前台代码:

@model WebSite.Models.Site_GuestBook
@section header{
    <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")"type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
}
@using (Ajax.BeginForm("WriteBook", "GuestBook", new AjaxOptions { UpdateTargetId = "bform" }))
{
    <div id="bform">
        @Html.Partial("BookForm", Model)
    </div>
}
后台代码:

[HttpPost]
        public ActionResult WriteBook(Site_GuestBook model)
        {

            if (string.IsNullOrEmpty(model.UserName))
            {
                ModelState.AddModelError("UserName", "必须填写");
            }
            if (string.IsNullOrEmpty(model.PhoneNum))
            {
                ModelState.AddModelError("PhoneNum", "必须填写");
            }
            if (string.IsNullOrEmpty(model.UserEmail))
            {
                ModelState.AddModelError("UserEmail", "必须填写");
            }

            if (ModelState.IsValid)
            {
                return PartialView("Success");
            }
            else
            {
                return PartialView("BookForm", model);
            }
        }
我是小李 2013-01-30
  • 打赏
  • 举报
回复
是否没有应用return机制。 仍建议LZ使用JS验证。
bdmh 2013-01-30
  • 打赏
  • 举报
回复
你的controller中return的是return ModelState.IsValid;吗,不过这类验证,用js验证比较好,不对服务器产生压力
空格键 2013-01-30
  • 打赏
  • 举报
回复
引用 1 楼 a346729576 的回复:
用js验证
那我也知道落,就是想看看用这种方式有没有可以显示验证信息的方法吗
夜色镇歌 2013-01-30
  • 打赏
  • 举报
回复
用js验证

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧