نمایش نتایج 1 تا 5 از 5

نام تاپیک: ارسال داده توسط Json

  1. #1

    ارسال داده توسط Json

    سلام دوستان



    public ActionResult Section(int ID)
    {
    if (Session["Username"] == null)
    return RedirectToAction("Login", "Home");


    string u = Session["Username"].ToString();

    // برای بررسی کردن اینکه کسی نتونه به صورت غیر مجاز این بخش رو نگاه کنه
    var cc = (from a in db.Tbl_Category
    join b in db.Tbl_User on a.Username equals b.Username
    join c in db.Tbl_Section on a.Category_ID equals c.Category_ID
    where b.Username.Equals(u) && c.Category_ID.Equals(ID)
    select c).ToList();

    return View(cc);
    }



    میخوام cc رو به صورت json پاس بدهم به view که بتوانم در javascript ازش استفاده کنم

    باید چیکار کنم ؟


    از return Json(cc); استفاده کردم اما مشکل اینجاست تو مرورگر وقتی باز میشه ، این view رو باز نمیکنه بلکه میخواد فایل json رو دانلود کنه !

  2. #2
    کاربر دائمی آواتار ali_md110
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    شیراز
    پست
    1,181

    نقل قول: ارسال داده توسط Json

    اکشن بدینصورت بنویسید

    public virtual ActionResult Section(int id)
    {

    var cc = (from a in db.Tbl_Category join b in db.Tbl_User on a.Username equals b.Username

    join c in db.Tbl_Section on a.Category_ID equals c.Category_ID
    where b.Username.Equals(u) && c.Category_ID.Equals(ID)
    select c).ToList();



    return Json(cc, JsonRequestBehavior.AllowGet);

    }


    این هم از سمت کلاینت شما

    function GetSession(id) {

    $.ajax({
    cache: false,
    url: "@Url.Action("Section", "نام کنترولر ")",
    dataType: "json",
    contentType: 'application/json; charset=utf-8',
    type: 'GET',
    data: { id: id },
    success: function (data) {
    $.each(data,
    function (index, item) {

    //دسترسی به مقادیر سمت کنترولر شما مثل نام کاربری
    var m = item.Username;
    });




    },

    error: function (xhr, ajaxOptions, thrownError) {
    alert('Failed to retrieve states.');

    }
    });
    }


    کافیه این متد را صدا بزنید و توی حلقه ی این متد از داده های ارسالی استفاده کنید مثلا در یک dropdown نمایش بدید

  3. #3
    کاربر دائمی آواتار ali_md110
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    شیراز
    پست
    1,181

    نقل قول: ارسال داده توسط Json

    اکشن بدینصورت بنویسید

    public virtual ActionResult Section(int id)
    {

    var cc = (from a in db.Tbl_Category join b in db.Tbl_User on a.Username equals b.Username

    join c in db.Tbl_Section on a.Category_ID equals c.Category_ID
    where b.Username.Equals(u) && c.Category_ID.Equals(ID)
    select c).ToList();



    return Json(cc, JsonRequestBehavior.AllowGet);

    }


    این هم از سمت کلاینت شما

    function GetSession(id) {

    $.ajax({
    cache: false,
    url: "@Url.Action("Section", "نام کنترولر ")",
    dataType: "json",
    contentType: 'application/json; charset=utf-8',
    type: 'GET',
    data: { id: id },
    success: function (data) {
    $.each(data,
    function (index, item) {

    //دسترسی به مقادیر سمت کنترولر شما مثل نام کاربری
    var m = item.Username;
    });




    },

    error: function (xhr, ajaxOptions, thrownError) {
    alert('Failed to retrieve states.');

    }
    });
    }


    کافیه این متد را صدا بزنید و توی حلقه ی این متد از داده های ارسالی استفاده کنید مثلا در یک dropdown نمایش بدید

  4. #4

    نقل قول: ارسال داده توسط Json

    سلام و متشکرم

    موقع اجرا ، این ارور رو داد :


    A circular reference was detected while serializing an object of type 'System.Data.Entity.DynamicProxies.Tbl_Category_84 A0814D4A649989BAD1DC0D56A083CFE4A4E7120E81897CC63C DDBBFD68D899'.

  5. #5
    کاربر دائمی آواتار ali_md110
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    شیراز
    پست
    1,181

    نقل قول: ارسال داده توسط Json

    این خطا مربوط به کوئری شما و Json Serialization میشود
    چند راه حل:
    بکارگیری Projection که یا از Automapper میتونید استفاده کنید
    یا Select ساده دیگه بعد از کوئری بر روی لیست واکشی شده انجام بدید
    یا json.net از این آدرس نصب کنید و تنظیمات زیر را اعمال کنید

    Settings =
    {
    PreserveReferencesHandling = PreserveReferencesHandling.Objects,
    Formatting = Formatting.Indented,
    ReferenceLoopHandling = ReferenceLoopHandling.Ignore
    }

    https://www.nuget.org/packages/Newtonsoft.Json


تاپیک های مشابه

  1. چگونگی ارسال داده توسط کد به کریستال ریپورت
    نوشته شده توسط ebrahimashori در بخش ابزارهای گزارش سازی
    پاسخ: 0
    آخرین پست: جمعه 28 خرداد 1395, 18:56 عصر
  2. اعتبار سنجی داده های ارسال شده توسط ایجکس
    نوشته شده توسط barname_newis در بخش Yii Framework
    پاسخ: 1
    آخرین پست: چهارشنبه 28 خرداد 1393, 07:53 صبح
  3. سوال: ارسال داده از گرید به استیمول توسط DataTable
    نوشته شده توسط Masoudse7en در بخش C#‎‎
    پاسخ: 7
    آخرین پست: جمعه 17 آبان 1392, 06:48 صبح
  4. مبتدی: درج اطلاعات در پایگاه داده توسط json
    نوشته شده توسط imanif در بخش JavaScript و Framework های مبتنی بر آن
    پاسخ: 1
    آخرین پست: یک شنبه 13 اسفند 1391, 12:10 عصر
  5. سوال: محدودیت در ارسال داده های رشته ای توسط WriteLn
    نوشته شده توسط مهران رسا در بخش توسعه نرم افزارهای تحت شبکه
    پاسخ: 0
    آخرین پست: چهارشنبه 23 تیر 1389, 14:06 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •