Ben bir Ajax.BeginForm içeren aşağıdaki görünümü,: -RedirectToAction, beklenmeyen sonuçlar
@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>
ve Ajax.Bginform çağrılabilir olacak aşağıdaki Eylem Yöntemi: -
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 dönüş başarı olduğunda çalışacak komut dosyası: -
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');
}
}
curren Bir sorunla karşı karşıyayım tedir ki RedirectToAction eriştiğinde, tüm görünüm geçerli görünümde görüntülenecektir! Bir RedirecttoAction döndürülürse başvurumu hedeflememeye zorlamam için bir yol var mı?
ajax üzerinden yönlendirme yapamazsınız. Bunun yerine yönlendirme URL'sini istemciye geri gönderebilir ve 'createuccess' işlevinde' window.location 'öğesini sağlanan URL'ye ayarlayabilirsiniz. – Zabavsky
Örnek kod –