在MVC3中使用AJAXOption的POST方法调用GET请求

时间:2012-01-10 06:30:44

标签: asp.net-mvc-3 razor

我对MVC3中的 AjaxOption 感到困惑,我想发帖请求,但总是提出请求并重定向到新网址。

我的.cshtml代码如下

<div >  

     @Html.ActionLink("Check Availability", "ValidateUsername", "Wizard",  new { username = "arun"},
                            new AjaxOptions()
                                {
                                    Url="/Wizard/ValidateUserName",
                                    UpdateTargetId = "msg",
                                    HttpMethod = "POST",
                                    LoadingElementId = "progress"

                                })
    </div>
    <div id="progress">
        <img alt="" src="../../Content/Images/progress.gif" width="20px" height="20px" style="display: none" />
    </div>
    <div id="msg">
    </div> 

和控制器操作如下

public ActionResult ValidateUsername(string username)
        {
            Thread.Sleep(200);
            //return Json(!username.ToLower().Equals("arun"));
            return Json(true , JsonRequestBehavior.AllowGet);
        }

始终是获取请求而不是 POST 请求并重定向到新网址http://localhost:55152/Wizard/ValidateUsername?username=arun ,为什么?

和HTML代码按照以下方式生成

<div >

            <a Confirm="" HttpMethod="POST" InsertionMode="Replace" LoadingElementDuration="0" LoadingElementId="progress" OnBegin="" OnComplete="" OnFailure="" OnSuccess="" UpdateTargetId="msg" Url="/Wizard/ValidateUserName" href="/Wizard/ValidateUsername?username=arun">Check Availability</a>
        </div>
        <div id="progress">
            <img alt="" src="../../Content/Images/progress.gif" width="20px" height="20px" style="display: none" />
        </div>

        <div id="msg">
        </div>

2 个答案:

答案 0 :(得分:2)

您需要使用@Ajax.ActionLink代替@Html.ActionLink通过ajax发布数据

答案 1 :(得分:0)

HTML中的锚标记始终执行get请求。你应该使用Jquery post。

有关详细信息,请参阅here