Javascript启动,没有我的要求
我有一个MVC4应用程序,在布局(旧版的母版页)上,我有一些javascript:Javascript启动,没有我的要求,javascript,asp.net-mvc,Javascript,Asp.net Mvc,我有一个MVC4应用程序,在布局(旧版的母版页)上,我有一些javascript: <script type="text/javascript"> $(document).ready(function () { $('.btnSubmit').on('click', function () { var data = { username: $('.txtUsername').val(), password: $(
<script type="text/javascript">
$(document).ready(function () {
$('.btnSubmit').on('click', function () {
var data = { username: $('.txtUsername').val(), password: $('.txtPassword').val(), rememberMe: $('.cbRemember').val() };
$.ajax({
url: '@Url.Action("LoginUser", "User")',
type: "POST",
contentType: "application/json",
data: JSON.stringify(data),
cache: false,
async: true,
success: function (result) {
console.log(result.toString());
if (result.Success == 'true') {
window.location = '@Url.Action("Index", "Home")';
} else {
alert(result.Message);
}
},
error: function () {
alert("Error in input");
}
});
});
});
</script>
问题发生在重定向操作上。。。当该视图(包括布局)重新加载时,会触发布局javascript
编辑:我现在看到是btnSubmitNewCard javascript触发了两次。单击事件发生时(预期),以及回发发生时。为什么会发生第二个事件?检查状态的行中没有定义:
if(result.Success='true'){
因为结果包含EditBankAccount操作视图的html响应字符串,并且没有“Success”属性。
您可以将breakepoint放入调试器并查看。您可以使用debugger;语句作为断点检查:-
$('.btnSubmitNewCard').click(function () {...});
为什么你首先要做RedirectToAction,而不是从Java脚本手动使用纯格式/重定向?顺便说一句,如果你根本不渲染它,为什么视图在ajax调用后会重新加载?我对这一点很陌生。如果我做错了什么,一定要告诉你。控制器方法会做一些工作,然后,我希望它基本上就是b确认呼叫页面。我不确定您的第二个问题。默认情况下,您不能使用ajax请求重定向。您需要使用javascript手动进行重定向。ajax请求将遵循HTTP 302重定向代码。请参见以下问题:谢谢。我不明白为什么会执行该脚本,因为没有单击我的登录按钮。啊,我请看,失败的其实不是我的登录代码,而是在重新加载页面时触发了“btnSubmitNewCard”单击。如何防止这种情况发生?它在单击事件时触发,然后在重新加载页面时再次触发。要使用debugger;语句,您需要在浏览器中运行开发人员工具。例如,在internet Explorer中按F12或者Firefox,在您期望断点被命中之前。
public ActionResult SaveBankCard(string cardNumber, string cardHolder, int expiryMonth, int expiryYear, string active, int accountId)
{
var card = new AccountCardDto
{
Id = 0,
AccountId = accountId,
Active = active == "on",
CardHolderName = cardHolder,
CardNumber = cardNumber,
ExpiryDate = new DateTime(expiryYear, expiryMonth, 1)
};
int id = new BankAccountService().SaveCard(card);
return RedirectToAction("EditBankAccount", new { bankAccountId = accountId });
}
$('.btnSubmitNewCard').click(function () {...});