我创建了一个MVC View页面,当用户单击按钮时,将调用Controller方法。该方法返回一个文本表达式。然后,该表达式将显示在弹出消息中。
单击按钮时,弹出功能起作用,但是,它具有导致页面重新加载的有害副作用。有办法防止这种情况吗?
以下是呈现按钮的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);
}
}
答案 0 :(得分:1)
正在重新加载页面,因为该按钮存在于HTML表单中。默认情况下,除非另有说明,否则HTML按钮的“类型”属性为“提交”。由于我没有为按钮指定“类型”,因此单击按钮被解释为表单提交。
为解决此问题,我将按钮的type属性设置为“ button”
<button type="button" id="btnListGroups" title="List the groups the selected service ID is a member of">List Groups</button>