Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery Asp中的Ajax返回问题。网络MVC_Jquery_Ajax_Asp.net Mvc - Fatal编程技术网

Jquery Asp中的Ajax返回问题。网络MVC

Jquery Asp中的Ajax返回问题。网络MVC,jquery,ajax,asp.net-mvc,Jquery,Ajax,Asp.net Mvc,我正在用asp.net mvc 4开发一个网站 我有一个检查用户是否注册的方法。我使用ajax,如果用户已经注册,我想在注册网页上的div上写一条消息,如果没有,我想注册用户并返回主页。我希望它是清楚的。因为它看起来有点难理解 script type="text/javascript"> $(function() { $('#form0').submit(function(event) { event.preventDefault(); var

我正在用asp.net mvc 4开发一个网站

我有一个检查用户是否注册的方法。我使用ajax,如果用户已经注册,我想在注册网页上的div上写一条消息,如果没有,我想注册用户并返回主页。我希望它是清楚的。因为它看起来有点难理解

script type="text/javascript">
$(function() {
    $('#form0').submit(function(event) {

        event.preventDefault(); 
        var result = "";
        var form = $(this);


        $.ajax({
            url: "CheckUser", //form.attr("action"),
            data: form.serialize(),
            beforeSend: function() {
                $("#ajax-loader").show();
            },
            complete: function() {
                $("#ajax-loader").hide();
            },
            error: function(request, status, error) {
                var obj = jQuery.parseJSON(request.responseText);
                if (request.status == 403) // authorize error
                {
                    myRouting(obj.LogOnUrl, "403 error", "error");

                } else {

                  alert("Error Occured: " + error.responseText + "\nError Code: " +
     request.responseText + " -- " + request.responseText);
                    var msg = "Error: " + error + "\nErrorCode: " + request.status;
                    myRouting("", msg, "error");

                }
            },

            success: function (data) {

                $.each(data, function() {
                    result += this.Name + "\n";
                });


                myRouting("", data, "data");

            }
        });

         return false;
    });



$(function myRouting(site, message, type) {


    if (type == "error") {
        $('#searchFailed').remove();
        $('<div id="searchFailed"></div>').appendTo('#searchMain');
        $('#searchFailed').append("<p>" + message + "</p>");
    } 
    });


});
</script>

@using (Html.BeginForm("CheckUser", "Account", FormMethod.Post, new { id = "form0" }))
{
    @Html.AntiForgeryToken()
    @Html.ValidationSummary()

    <fieldset>
        <legend>Registration Form</legend>
        <ol>
            <li>
                @Html.LabelFor(m => m.UserName)
                @Html.TextBoxFor(m => m.UserName)
            </li>                 



            <li>
                @Html.LabelFor(m => m.Name)
                @Html.TextBoxFor(m => m.Name)
            </li>                       


            <li>
                @Html.LabelFor(m =>m.Password)
                @Html.PasswordFor(m => m.Password)
            </li>

            <li>
                @Html.Label("Confirm Password")
                @Html.PasswordFor(m => m.Password)
            </li>

            <li>
                @Html.LabelFor(m => m.Email)
                @Html.TextBoxFor(m => m.Email)
            </li>                             


        </ol>
        <input type="submit" value="Register" />
    </fieldset>
}
我知道在ajax中,重定向操作是不可能的,但是如果我可以在ajax中“出错”,我可以在ajax中重定向它


在ajax中,返回内容总是“成功”,即使用户以前没有注册,它仍然是“成功”

不要将
success
事件与代码的逻辑部分/授权的成功混为一谈

ajax中的成功意味着请求已通过。。您需要检查它返回的数据,以查看它是否具有用于确定它是否成功检查用户的信息

success
事件处理程序中,检查返回的数据


如果我是你,我就不会回复你的观点。。我可能会返回JSON,它显然包含任务成功或失败的信息。。还有可能是错误的描述。

谢谢你的回复,你的意思是“是的,差不多就是这个想法。”。
   [HttpPost]
   [AllowAnonymous]
   [ValidateAntiForgeryToken]
   public ActionResult Register(User model)
   {
        if (ModelState.IsValid)
        {
            // Attempt to register the user
            try
            {

              var result =   helper.RegisterUser(model);

              if (result)
              return  RedirectToAction("Index", "Home"); //Json(Url.Action("Index", "Home"));   

            }
            catch (MembershipCreateUserException e)
            {
                ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
            }
        }

        return View(model);
    }

    public ActionResult CheckUser(User model)
    {
        bool result = helper.IsUserExist(model);

            if (result)
            {
             ModelState.AddModelError("", ErrorCodeToString(MembershipCreateStatus.DuplicateUserName));

             return Content("User is already created !!!!");

           }
           return Register(model);
    }