我有这段代码......
$("#Login").click(function()
{
var dataObject = { UserName: $("#UserName").val(), Password: $("#Password").val() };
$.ajax({
url: '@Url.Action("Login","User")',
type: "POST",
data: dataObject,
datatype: "json",
success: function (result) {
if (result.toString() == "success") {
alert(result);
window.location.href = "~/Views/User/Home.cshtml";
}
else {
alert(result);
}
},
error : function(result)
{
alert("ERRORR")
}
});
})
我尝试重定向到主页...在成功提醒之后......但它不起作用。我得到了:
' /'中的服务器错误应用
此类网页未投放。
描述:未提供您请求的页面类型,因为它已被明确禁止。扩展程序' .cshtml'可能不正确。请查看下面的网址,确保拼写正确。
有什么想法吗?
这是我的UserController:
public class UserController : Controller
{
UserBusinessLogic UserBL = new UserBusinessLogic();
//
// GET: /User/
public ActionResult Login()
{
return View();
}
[HttpPost]
public ActionResult Login(User User)
{
string message = "";
if(ModelState.IsValid)
{
if(UserBL.CheckUserLogin(User) > 0)
{
message="success";
}
else
{
message="Username or password not correct";
}
}
else
{
message = "All Field Required";
}
if (Request.IsAjaxRequest())
{
return Json(message,JsonRequestBehavior.AllowGet);
}
else
{
return RedirectToAction("Index","Home");
}
}
}
答案 0 :(得分:1)
由于安全原因,默认情况下Web服务器不会提供* .cshtml服务。
我想你想重定向到主页。如果是这样,它应该是这样的 -
window.location.href = '@Url.Content("~")';
或
window.location.href = '@Url.Content("~/User/Home")';
或
window.location.href = '@Url.Action("Home","User")';
答案 1 :(得分:1)
您正在尝试重定向到cshtml视图。您需要重定向到控制器中的操作 - 大概是/ User / Home
答案 2 :(得分:0)
我认为你对MVC模式有误解。
“我想在成功提醒消息后重定向到它。我没有 在任何控制器中都有它。我只想做一个简单的重定向。“
但这不是标准。通常,即使是最简单的请求,您也可以创建一个控制器,即使它看起来像
public class UserController : Controller
{
public ActionResult Home()
{
return View();
}
}
然后定向到控制器的动作
window.location.href = "/User/Home";