【发布时间】:2018-11-15 17:45:15
【问题描述】:
我创建了一个 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);
}
}
【问题讨论】:
-
除非它连接到表单,否则不应通过基本按钮单击发生这种情况。您是否尝试添加 event.preventDefault();到js函数?
-
您的按钮在表单内吗?使用
preventDefault -
@SeanLeroy - 谢谢!是的,按钮存在于表单块中。添加 event.preventDefault();到 .click 函数解决了这个问题。
-
别忘了在你的项目中从 nuget manager 安装 query.unobtrusive-ajax 包。
标签: javascript c# jquery ajax asp.net-mvc