javascript - AJAX - 发布到 MVC 控制器方法而不重新加载页面
问题描述
我创建了一个 MVC 视图页面,当用户单击按钮时,将调用控制器方法。该方法返回一个文本表达式。然后,此表达式将显示在弹出消息中。
单击按钮时弹出功能起作用,但是,它具有导致页面重新加载的不良副作用。有没有办法防止这种情况?
这是呈现按钮的 HTML:
<button id="btnListGroups" title="List the groups the selected service ID is a member of">List Groups</button>
这是JavaScript:
$(function () {
$("#btnListGroups").click(function () {
var val = $("#ddlServiceID").val();
$.post("/Home/GetGroups", { serviceID: val }, function (data, textStatus)
{
alert(data);
});
});
})
最后,这是 Controller 方法:
public partial class HomeController : Controller
{
public MvcHtmlString GetGroups(string serviceID)
{
ADHandler adHandler = new ADHandler();
string groups = adHandler.GetGroupMemberships(serviceID);
return new MvcHtmlString(groups);
}
}
解决方案
由于该按钮存在于 HTML 表单中,因此正在重新加载页面。默认情况下,除非另有说明,否则 HTML 按钮的“类型”属性为“提交”。由于我没有为按钮指定“类型”,因此单击按钮被解释为表单提交。
为了解决这个问题,我将按钮的类型属性设置为“按钮”
<button type="button" id="btnListGroups" title="List the groups the selected service ID is a member of">List Groups</button>
推荐阅读
- vmware-clarity - 项目清晰度 - 固定导航
- c# - 数据注释验证在 ASP.net 中不起作用
- c# - 单击帮助图标时创建提示弹出窗口
- java - Cookies.get('XSRF-TOKEN') 返回 undefined (spring web jars)
- android - 如何获取当前颜色并将名称显示到 EditText
- yii2 - Yii2迁移中如何设置数据类型为longtext
- field - 检索跟踪字段的历史 odoo 11
- c# - 反序列化 json 数组时出错
- javascript - 在转换为 json 之前反应原生 fetch api 检查 http 状态
- c++ - 来自数组的 QAudioInput