دسته بندی ها
14:53 1398/12/06

دریافت مقدار Viewbag توسط آرایه در جی کویری

مشخصات سوال کننده :
کاربر : pedram_khan     امتیاز کاربر : 277     رتبه کاربر : 6
دسته بندی : Asp.net Core Asp.net Mvc جاوا اسکریپت جی کوئری

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 2908
هوش مصنوعی

پاسخ هوش مصنوعی

برای دریافت مقدار از ViewBag در سمت کلاینت و تبدیل آن به یک آرایه در جی کویری، می توانید از کد زیر استفاده کنید. ابتدا مطمین شوید که شما using Newtonsoft.Json; را به فایل کنترلر خود اضافه کرده اید که می تواند JsonConvert.SerializeObject را برای تبدیل لیست به JSON استفاده کند.

در کنترلر:

   [HttpGet]
   public IActionResult Interview()
   {
       var questionList = _context.question.ToList();
       ViewBag.allQuestionAndList = JsonConvert.SerializeObject(questionList);
       return View();
   }

سپس در سمت کلاینت، می توانید از کد زیر استفاده کنید:

<script>
    $(document).ready(function () {
        var array = @Html.Raw(ViewBag.allQuestionAndList);
        alert(array);
    });
</script>

این روش باید مشکل را حل کند و مقادیر ViewBag را به یک آرایه در جی کویری تبدیل کند. در صورتی که هنوز با خطا مواجه شدید، لطفاً نوع داده هایی که در ViewBag قرار می دهید را بررسی کنید.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : fateme 14:58 1398/12/08

گاهی اوقات لازم هست مقدار یک List رو از سمت کنترلر به View ارسال کنیم و توسط کدهای جی کوئری مقدار List ارسال شده رو دریافت کنیم و درون یک آرایه نگهداری کنیم تا بتونیم از این آرایه در ویو استفاده کنیم. برای این کار می تونید از دستور زیر استفاده کنید

 

کنترلر

 

 ViewBag.Users = _context.Users.Tolist();

 

حالا میتونیم وقتی ویو Load شد این ViewBag رو دریافت کنیم.

 

      $(document).ready(function () {
            var array = [];
            array = JSON.parse('@Html.Raw(
                        Json.Serialize(
                            ((IEnumerable<Users_Tbl>)ViewBag.Users).Select(user=> new
                                {
                                    userId = user.userId ,
                                    userName = user.userName ,
                                    address = user.address ,
                                    phoneNo = user.phoneNo ,
                                })
                            )
                        )');
        });

 

توسط دستورات بالا شما یک آرایه دارید به نام array که شامل لیست Users هایی هست که از سمت کنترلر اومده.

 

نمایش آرایه در جی کوئری

توسط دستور زیر می تونید مقدار محتویات این آرایه رو نمایش بدید

console.log(array);

 

دسترسی به سلولهای آرایه در جی کوئری

 

با استفاده از دستور زیر می تونید به سلولهای آرایه دسترسی داشته باشید

 

array.find(x => x.userid === '45').address;

 

به این پاسخ امتیاز بدهید    0
امتیاز: 1635 رتبه: 2
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود