我的项目中有一个带有ajax请求的登录表单。我的项目在调试模式下可以正常运行,但是当我将其发布到IIS并尝试登录时,它显示Server Error in '/gate_control_system' Application. The resource cannot be found. Description: HTTP 404.
。所请求的网址正确,但仍然出现错误。
我在Google上找到了解决方案,但是没有运气,我已经在stackoverflow中尝试了相同的问题,但是没有任何解决方案。
这是我的代码。
查看
<div class="form-inner" style="border-radius: 10px;">
<div class="logo"><strong class="text-primary">Gate Control System</strong></div>
<p>What's this?.</p>
<div class="text-left form-validate">
<div class="form-group-material">
<input id="username" type="text" name="loginUsername">
<label for="username" class="label-material">Username</label>
</div>
<div class="form-group-material">
<input id="password" type="password" name="loginPassword">
</div>
<div class="form-group text-center">
<button onclick="login()" class="btn btn-primary">Login</button>
</div>
</div>
</div>
JavaScript
function login() {
var username = document.getElementById("username");
var password = document.getElementById("password");
if (!username.value) {
$(username).validationEngine('validate');
return;
}
if (!password.value) {
$(password).validationEngine('validate');
return;
}
$.ajax({
url: '@Url.Action("login","Login")',
type: "POST",
dataType: "JSON",
data: {
"username": username.value,
"password": password.value
},
success: function (res) {
console.log(res);
if (res != null) {
window.location.reload();
} else {
alertify.error("Username and password do not match.");
}
},
error: function (er) {
alertify.error("Error: " + er);
}
});
}
LoginController
[HttpPost]
public ActionResult login(Users data)
{
Users list = new Users();
using (DbModels db = new DbModels())
{
list = db.Users.SingleOrDefault(x => x.username == data.username && x.password == data.password);
if( list != null)
{
Session["logged_in"] = list.id;
}
}
return Json(list);
}
我不知道为什么它在发布模式下不起作用,但在使用Visual Studio 2017的调试模式下能很好地工作
我已经为所有人设置了权限,希望可以解决此问题,但是没有运气。如何解决该图像中显示的问题?请帮忙 error image