JQuery POST重定向

时间:2017-03-14 10:05:02

标签: javascript jquery ajax asp.net-mvc post

我在ASP.NET MVC中编写了一个程序,我的AJAX函数存在问题。

如果我的函数返回成功,我想在POST方法中重定向到另一个页面。我不能使用window.location因此我必须制作一个执行post方法的表单。

这是我的代码:

<body>
<div class="login">
    <div class="login-screen">
        <div class="app-title">
            <h1>bla bla bla</h1>
        </div>

        <div class="login-form">
            <div class="control-group">
                <input type="text" class="login-field" value="" placeholder="bla bla bla" id="login-name">
                <label class="login-field-icon fui-user" for="login-name"></label>
            </div>
            <div class="control-group">
                <input type="password" class="login-field" value="" placeholder="bla bla bla" id="login-pass">
                <label class="login-field-icon fui-lock" for="login-pass"></label>
            </div>

           <input type="button" class="btn btn-primary" id="button" value="bla bla bla"/>
        </div>
    </div>
    <div id="failedLogin">
    </div>

</div>
</body>

<script src="~/Scripts/Login.js"></script>

这是m js代码

$("#button").click(function () {
    $.ajax({
        url: "home/signIn",
        data: { userName: $("#login-name").val(), Password: $("#login-pass").val() },
        success: function (result) {
            if (result == "success") {

                var redirect = function (url, method) {
                    $('<form>', {
                        method: method,
                        action: url
                    }).submit();
                };

                redirect('/Account/Menu?Name=' + $("#login-name").val(), 'post');
            }
            else {
                var content = $("#failedLogin");
                var label = "<label class=\"result\">bla bla bla </label>";
                content.html(label);
            }
        }
    })

我的c#代码:

public string  signIn(string userName , string Password)
{
    var db = new OsemEntities();

    var name= from u in db.*********
                where u.UserName == userName & u.UserPassword == Password
                select u.UserName;

    if (name.Count() == 1)
        return "success";
    else
        return "fail";


}

我的帖子重定向不起作用,我很乐意得到一些帮助。

谢谢!

2 个答案:

答案 0 :(得分:0)

  var redirect = function (url, method) {
                    $('<form>', {
                        type: method,
                        action: url
                    }).submit();
                };

试试这个。方法已折旧。改为使用类型

答案 1 :(得分:0)

您无需返回Ajax功能,您可以从控制器端处理此问题。

  if (name.Count() == 1)
            return RedirectToAction("HomeView");
//In your HomeView you can have your first page
        else
            return View();