ASP.NET MVC5使用AjaxHelp


默認情況下,Visual Studio 2013新建ASP.NET MVC5項目,不包含jquery.unobtrusive-ajax.js,需要手工添加。

點擊Visual Studio 2013中的“工具”菜單,選擇“庫程序包管理器”,再選擇“管理解決方案的NuGet程序包“,在出現的對話框中聯機搜索jquery.unobtrusive-ajax.js,然后安裝即可。

看上圖中的信息,對應版本是3.2.0,需要jQuery1.8以上版本支持。MVC5中默認包含的jQuery1.10.2,可以滿足條件。

接下來,我們就可以使用AjaxHelper了。

View代碼:

@model MVCLearning.Models.SetPasswordModel

@{
    ViewBag.Title = "修改密碼";
}
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-1.10.2.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")"></script>   
<script type="text/javascript">
    function Show(msg) {
        alert(msg);
    }
</script>

@using (Ajax.BeginForm("Edit", new AjaxOptions(){OnSuccess="Show"}))
{
    @Html.AntiForgeryToken()
    <br />
    <div class="form-horizontal">
        @Html.ValidationSummary(true)
        <div class="form-group">
            @Html.LabelFor(model => model.Password, new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.PasswordFor(model => model.Password)
                @Html.ValidationMessageFor(model => model.Password)
            </div>
        </div>


        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" value="Save" class="btn btn-default" />
            </div>
        </div>
    </div>
}



@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

別忘了在View中引用腳本:

<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-1.10.2.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")"></script>   


Controller代碼:

 [HttpPost]
        public ActionResult Edit(SetPasswordModel model)
        {
            try
            {
                string userName=User.Identity.Name;
                var user= db.User.Where(x => x.UserName == userName).FirstOrDefault();
                if(model.Password!=user.Password)
                {
                    ModelState.AddModelError("","原始密碼錯誤!");
                    return View(model);
                }
                else
                {
                    user.Password = model.NewPassword;//更新密碼
                    db.SaveChanges();
                    return Content("密碼修改成功!");
                }
                //return RedirectToAction("Index","ContactGroup");
            }
            catch
            {
                return View(model);
            }
        }


也可以在Controller中直接返回JavaScript,代碼如下:

View代碼修改如下:

@using (Ajax.BeginForm("Edit",new AjaxOptions()))

Controller代碼修改如下:

return JavaScript("alert('密碼修改成功!');");

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM