دسته بندی ها
21:01 1399/06/30

نحوه ارسال Model به ViewComponent در Asp.net Core

مشخصات سوال کننده :
کاربر : fateme     امتیاز کاربر : 1617     رتبه کاربر : 2
دسته بندی : Asp.net Core

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 2312
پاسخ دهنده : saedbfd 21:08 1399/06/30

نحوه ارسال Model به ViewComponent در Asp.net Core

دستوراتی که شما نوشتید تا حد زیادی درست هست اما اشکالاتی داره. اول اینکه بهتره که به Model که میخواید ارسال کنید یه اسم بدید و در کلاس مربوط به Component هم با همون نام دریافتش کنید. کدهای زیر رو دقت کنید :

@model IEnumerable<CourseListForDisplayViewModel>

<div class="content">
    <form>
        <div class="panel panel-body">
           
        </div>
    </form>
    @await Component.InvokeAsync("myViewComponent", new {mModel = Model})
</div>

 

نکته بعد هم اینکه Model شما یک IEnumerable هست. بنابراین باید در کلاس مربوط به View Component هم یک IEnumerable دریافت کنید نه یک Model تنها. کدهای زیر رو دقت بفرمایید

  [ViewComponent(Name = "myComponent")]
    public class CourseListViewComponent : ViewComponent
    {
        private readonly ICourseRepository _icourse;

        public CourseListViewComponent(ICourseRepository icourse)
        {
            _icourse = icourse;
        }

        public IViewComponentResult Invoke(IEnumerable<CourseListForDisplayViewModel> model)
        {
            return View(model);
        }
    }

 

بنظر نمیاد مشکل دیگه ای وجود داشته باشه.

به این پاسخ امتیاز بدهید    0
امتیاز: 1654 رتبه: 1
1 نظر
fateme : متشکر بابت پاسخ

امتیاز کاربر : 1617   رتبه کاربر : 2   تاریخ ثبت : 01:43 1399/07/18
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود