在MVC3中,同一个页面有3个按钮是要用ajax异步刷新的,不想用@html.ActionLink,@html.BeginForm()的话,不行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在MVC3中,同一个页面有3个按钮是要用ajax异步刷新的,不想用@html.ActionLink,@html.BeginForm()的话,不行相关的知识,希望对你有一定的参考价值。
一个页面只能有一个表单,我是想在同一个页面有多个局部的刷新,怎么实现? 先谢了
参考技术A 谁告诉你一个页面只能有一个表单的,即使webform的模式也有方法多个表单的,何况mvc模式呢。这可是基础啊。 参考技术B 用jquery做异步更新,在后台的controller中为这个异步单独写一个ActionRelust.没有页面刷新的 ASP.NET MVC 5 表单 AJAX 发布
【中文标题】没有页面刷新的 ASP.NET MVC 5 表单 AJAX 发布【英文标题】:ASP.NET MVC 5 Form AJAX Post Without Page Refresh 【发布时间】:2020-09-19 03:06:42 【问题描述】:我有一个基本的 ASP.NET MVC 5 页面,上面有一个 @HTML.BeginForm
对象。这个表单将是非常动态的,并且会在用户使用它时添加各种东西。
我希望在 AJAX Post 调用控制器从数据库中收集数据(用于填充选择框)之前,该表单中有几个按钮,但我不希望它们实际提交表单。我想在表单底部有一个按钮,上面写着“提交”,并在用户完成后实际提交整个表单。
我想在@HTML.BeginForm
对象中添加其他按钮,这些按钮能够发布到服务器以从数据库中收集数据,而无需实际提交整个表单。我将jquery.unobtrusive-ajax.min.js
库添加到我的页面,但这似乎没有帮助。
只要单击表单中的按钮,它就会立即尝试提交整个表单并刷新页面。我该如何解决这个问题?
【问题讨论】:
【参考方案1】:这是我自己想出来的。您必须拥有jquery.unobtrusive-ajax.min.js
库,但除此之外,您必须使用<input />
元素而不是<button />
元素。我相信@HTML.BeginForm
元素中的任何<button />
元素都会自动提交表单。我从<button />
切换到<input />
,现在可以正常工作了。
【讨论】:
以上是关于在MVC3中,同一个页面有3个按钮是要用ajax异步刷新的,不想用@html.ActionLink,@html.BeginForm()的话,不行的主要内容,如果未能解决你的问题,请参考以下文章
MVC3 - 部分视图中的多个 Ajax 表单在刷新时都填充了相同的数据
在 MVC3 中的 Ajax.Beginform 中调用自定义确认对话框
使用 JSON 结果填充下拉列表 - 使用 MVC3、JQuery、Ajax、JSON 的级联下拉