我有以下视图,其中包含一个Ajax.BeginForm: –
- @using (Ajax.BeginForm("ChangeDevicesSwitch","Switch",new AjaxOptions
- {
- InsertionMode = InsertionMode.InsertBefore,UpdateTargetId = "result",LoadingElementId = "progress2",HttpMethod= "POST",OnSuccess = "createsuccess",OnFailure = "createfail"
- }))
- //code goes here
- <p><img src="~/Content/Ajax-loader-bar.gif" class="loadingimage" id="progress2" /></p>
- <div id ="result"></div>
以及将从Ajax.Bginform调用的以下Action方法: –
- public ActionResult ChangeDevicesSwitch(SwitchJoin s)
- {//code goes here
- try
- {
- var count = repository.changeDeviceSwitch(s.Switch.SwitchID,(Int32)s.GeneralSwitchTo,User.Identity.Name.Substring(User.Identity.Name.IndexOf("\\") + 1));
- repository.Save();
- return RedirectToAction("Details",new { id = s.GeneralSwitchTo });
- }
- catch (Exception e)
- {
- return Json(new { IsSuccess = "custome",description = "Error occurred. Please check...." },JsonRequestBehavior.AllowGet);
- }
- }
将在Ajax.BeginForm返回成功时运行的脚本是: –
- function createsuccess(data) {
- if (data.IsSuccess == "Unauthorized") {
- jAlert(data.description,'Unauthorized Access');
- }
- else if (data.IsSuccess == "False") {
- jAlert('Error Occurred. ' + data.description,'Error');
- }
- else if (data.IsSuccess == "custome") {
- alert(data.description);
- }
- else {
- jAlert('Record added Successfully ','Creation Confirmation');
- }
- }
目前我遇到的一个问题是,当RedirectToAction到达时,整个视图将显示在当前视图内!如果返回RedirecttoAction,有没有办法强制我的应用程序不更新目标?