我对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>
答案 0 :(得分:2)
您需要使用@Ajax.ActionLink
代替@Html.ActionLink
通过ajax发布数据
答案 1 :(得分:0)
HTML中的锚标记始终执行get请求。你应该使用Jquery post。
有关详细信息,请参阅here