我有没有布局的登录页面。我尝试使用ajax post方法登录,但该方法没有点击mvc Controller方法。
当我尝试登录成功部分的警告框时弹出空白。如果此方法命中该警报应该有一些记录。
请帮我解决这个问题。
Ajax方法:
$('#Login').on('click', function (event) {
event.preventDefault();
var LoginUrl = $("#LoginUrl").val();
var user = {
UserName: $("#UserName").val(),
Password: $("#Password").val(),
RememberMe: true
};
debugger;
$.ajax({
url: LoginUrl,
type: 'POST',
data: user,
success: function (data) {
alert(data.Code);
},
error: function (xhr, ajaxOptions, thrownError) {
// Reset
}
});
});
登录表格:
@using (Html.BeginForm(null, null, FormMethod.Post, new { id = "formLogin" }))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<div class="form-group">
<div class="col-sm-12">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-user"></i></span>
@Html.TextBoxFor(m => m.UserName, new { @class = "form-control", @placeholder = "Username" })
@Html.ValidationMessageFor(m => m.UserName)
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-12">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-lock"></i></span>
@Html.PasswordFor(m => m.Password, new { @class = "form-control", @placeholder = "Password" })
@Html.ValidationMessageFor(m => m.Password)
</div>
</div>
</div>
<div class="row">
<div class="foot">
<div class="row">
<a href="/Account/ForgotPassword" class="btn btn-primary btn-sm md-close"><i class="fa fa-arrow-circle-o-left"></i>Forgot Password</a>
<button id="Login" type="submit" class="btn btn-primary btn-sm md-close"><i class="fa fa-arrow-circle-o-left"></i>Log me in</button>
</div>
</div>
</div>
}
脚本:
<script src="~/Scripts/js/jquery.js"></script>
<script type="text/javascript" src="~/Scripts/js/behaviour/general.js"></script>
<script type="text/javascript" src="~/Scripts/js/bootstrap.switch/bootstrap-switch.min.js"></script>
<script src="~/Scripts/js/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="~/Scripts/js/boostrap.validator/dist/js/bootstrapValidator.min.js"></script>
<script type="text/javascript" src="~/Scripts/user.manager.js"></script>
答案 0 :(得分:0)
如果您的警报为空(并且未定义),则您的服务器没有响应具有data.Code中任何值的对象。例如alert({}.Code);
显示未定义的提醒,而data = {Code:''};alert(data.Code);
显示问题中描述的空提醒。
可能最好使用控制台调试代码而不是警报。
答案 1 :(得分:0)
问题在于您在ajax请求中未指定的datatype
: -
$.ajax({
url: LoginUrl,
type: 'POST',
data: user,
dataType :'JSON', //i think controller action is returning 'JSON', specify dataType as 'JSON' here.
success: function (data) {
alert(data.Code);
},
error: function (xhr, ajaxOptions, thrownError) {
// Reset
}
});