PDA

View Full Version : مشکل با اطلاعات برگشتی از actionresult به صورت json



debugger
سه شنبه 12 خرداد 1394, 12:08 عصر
سلام بنده یک فرم را را به صورت زیر به سرور ارسال می کنم

@using (Ajax.BeginForm("GetActiveCode", "Index", new AjaxOptions { HttpMethod = "Post", Url = "/Home/GetActiveCode", OnBegin = "StartValidation", OnComplete = "OnSuccess" }, new { id = "uform" })) {


سپس به صورت زیر در قسمت controller بر میگیردونم

return Json(new { sucsses = true, activeserial = ac }, JsonRequestBehavior.AllowGet);

سپس در view کد جاوااسکرییت زیر را نوشتم تا خروجی نمایش داده بشه

function OnSuccess(arg) { //document.getElementById("usecode").value = "";

var arg = arg.get_response().get_object();
document.getElementById("activecode").value = arg.activeserial;




}





هیچ اتفاقی نمی افتد و اروری هم در firebug هست میگه فانکشن get_response ناشناخته است . با بارگذاری جی کوئری در صفحه و اومدن این فانکشن در اینتلسنس این مشکل بر طرف میشه

اما بنده نمی توانم value برگشتی را هندل کنم

لطفا راهنمایی فرمائید

debugger
سه شنبه 12 خرداد 1394, 12:12 عصر
خطایی فایرباگ هم اینه

TypeError: arg.get_response is not a function




var arg = arg.get_response().get_object();

mze666
سه شنبه 12 خرداد 1394, 16:22 عصر
var arg = arg.get_response().get_object(); رو حذف کنید

debugger
پنج شنبه 14 خرداد 1394, 15:20 عصر
حذف هم می کنم درست نمیشه . میشه یه مثال کوچیک آپلود فرمائید

debugger
شنبه 16 خرداد 1394, 10:20 صبح
وقتی از Ajax.BeginForm مقادیر را ارسال می کنیم چطور میشه یک مقدار را به صورت جی سان از سمت controller دریافت کرد . ؟؟؟؟ دوستان صورت مساله را عوض کردیم اساتید لطفا راهنمایی فرمائید

salar IT man
شنبه 16 خرداد 1394, 11:45 صبح
وقتی از Ajax.BeginForm مقادیر را ارسال می کنیم چطور میشه یک مقدار را به صورت جی سان از سمت controller دریافت کرد . ؟؟؟؟ دوستان صورت مساله را عوض کردیم اساتید لطفا راهنمایی فرمائید

به شکل زیر عمل کنید :



function OnSuccess(xhr, status) {
var data = xhr.responseText;
}

debugger
دوشنبه 18 خرداد 1394, 01:45 صبح
متاسفانه مقدار برگشتی undefined هست .

salar IT man
دوشنبه 18 خرداد 1394, 14:32 عصر
متاسفانه مقدار برگشتی undefined هست .

این مورد تست شده است! https://github.com/rabbal/My-Golden-City-Shop/blob/master/GoldenCityShop/Scripts/addToCart-plugin.js

قسمت url را در ajaxoption حذف کنید. و نام کنترلر خود را که "Index" معرفی کرده اید ،تصحیح کنید . همچنین با یک breakpoint چک کنید که آیا درخواست به سرور میرسد و با استفاده از قسمت network مرورگر response را هم بررسی کنید.

دقت کنید که از این متد ی که در پست قبل کذاشتم برای OnComplete استفاده کنید:

function OnComplete(xhr, status) {
var data = xhr.responseText;
}



برای OnSuccess هم از متد زیر میتوانید استفاده کنید:



function OnSuccess(data) {
var success=data.success;
var active=data.activeserial;
}

debugger
دوشنبه 18 خرداد 1394, 17:21 عصر
اقا واقعا ایول داری . با حذف url از داخل option های ajax.beginform مشکل حل شد .
بی نهایت سپاس