location.href无法在asp mvc上运行

时间:2016-05-10 22:01:09

标签: javascript asp.net asp.net-mvc

我有这段代码......

$("#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");
            }
        }
    }

3 个答案:

答案 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";