在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 中调用自定义确认对话框

如何实现JSP列表升序或者降序

使用 JSON 结果填充下拉列表 - 使用 MVC3、JQuery、Ajax、JSON 的级联下拉

为啥在 MVC 3 中使用 ajax 动态加载表只能在兼容模式下工作?

通过 Ajax Post 使用模型更改更新视图 - MVC3