asp.net-mvc – 如何在Ajax.BeginForm中使用Html.ValidationSumm
我有一个我在MVC项目中创建的
AJAX表单.如果使用普通浏览器函数提交表单并且发生页面刷新,则会获得表单中呈现的验证信息(基于ViewData.ModelState的内置MVC验证).
AJAX表单是否有类似的验证机制? <% using (Ajax.BeginForm("Create","GraphAdministration",new AjaxOptions() { OnSuccess = "newGraphSuccess",OnFailure = "newGraphFailure",HttpMethod = "POST" })) { %> <!-- some form stuff in here !--> <% } //end form %> 解决方法
这取决于您在发布表单后获取内容的位置.验证摘要是在服务器上创建的,因此您必须完成工作.
作为一个例子,我在.ascx文件中使用一些部分内容来呈现表单.您可以通过直接使用Html.RenderAction调用操作来第一次在页面中获取表单 您可以在.ascx文件中使用Ajax.BeginForm等.然后直接在动作中调用它. 当从浏览器进行Ajax调用时,您可以将其发布到相同的操作.这样您就可以进行通常的所有服务器端验证.您应该设置Ajax调用以使用操作返回的新html替换原始表单. 你必须要注意的一件事是,替换JavaScript将替换元素的内容而不是元素本身,所以请记住周围元素的id. 抱歉,如果你想要更多的细节只是评论,我会充实相关的位. 额外细节: 所有这些都假定您正在服务器上进行所有验证. 您将拥有一个包含所有页面内容的View,然后是.ascx文件中的部分内容,这是您的ajax表单所在的位置,需要设置为按id替换内容.如果它与你的ajax将要调用的动作同名,它是最简单的. 您可以使用Html.RenderAction将其导入View.您还可以使用相同方法的其他版本传递数据.你基本上以你的ajax代码的方式调用它. 您将需要将所有内容包装在具有id集的div中.在partial中使用此id作为要替换的内容. 当您呈现页面时,表单的html和所有ajax内容都将被放入. 调用ajax操作时,将返回部分内容并执行任何验证.它将替换您提供id的div的内容. 您可以使用[AcceptVerbs(HttpVerbs.Get)]和[AcceptVerbs(HttpVerbs.Post)]属性来拥有不同版本的操作 这种方法的主要问题是它不是自包含的,带有id的div是局部的外部. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 如果在剃刀视图中使用ELSE帮助器?
- asp.net-mvc – 在asp.net mvc主页面的导航列表中添加“活动
- asp.net – 如何在Dotnetnuke中更改Radcaptcha的音频文件
- ASP.NET中XML转JSON的方法实例
- asp.net – UpdatePanel中的动态创建控件?
- asp.net – 基本单声道安装不会工作
- asp.net – 我可以覆盖web.config中的连接字符串以进行本地
- asp.net-mvc – Html.ActionLink()是否发布了表单数据?
- ASP.NET MVC5单击Html.ActionLink更改语言/文化
- asp.net – 如何诊断IIS将CPU推向100%?
- asp.net-identity – ASP.Net身份提供商请求太多
- asp.net-mvc – ASP.net MVC – 呈现包含不同类型
- asp.net – 在UpdatePanel asyncpostback后丢失的
- asp.net – 用于gridview分页的PagedDatasource
- ASP.NET Core Web Api自动帮助页面
- 在ASP.NET C#中调用Web服务时,Session为null
- Asp.Net Core中WebSocket绑定的方法详解
- asp.net – Cookie域优先?
- asp.net-mvc-3 – 当调用Controller.PartialView
- asp.net-mvc – HiddenInput(DisplayValue = fal