ارسال دو یا چند آبجکت به یک ویو در Asp.net Core
من یک قطعه کد از یک اکشن دارم که قراره مودال افزودن کاربر رو نشون بده .
یکی از فیلد ها از جدول نقش خوانده میشه (model)
یکی از فیلد ها از جدول شعبه خوانده میشه(model2)
حالا می خواهم هر دو مدل رو به View بفرستم .
public IActionResult AddUser()
{
UserViewModel model = new UserViewModel();
model.ApplicationRoles = _roleManager.Roles.Select(r => new SelectListItem
{
Text = r.Name,
Value = r.Id
}).ToList();
UserViewModel model2 = new UserViewModel();
model2.Branch = _context.Brnches.Select(r => new SelectListItem
{
Text = r.BranchCode,
Value = r.Id
}).ToList();
//How Send model&model2 as model3 to View ?
return PartialView("_AddUser", model3);
}
پاسخ هوش مصنوعی
برای ارسال چند مدل به یک View در ASP.NET Core، شما می توانید از یک ViewModel ترکیبی استفاده کنید. این ViewModel باید شامل هر دو مدل باشد. در اینجا یک مثال از نحوه انجام این کار آورده شده است:
public class CombinedViewModel
{
public List ApplicationRoles { get; set; }
public List Branches { get; set; }
}
public IActionResult AddUser()
{
CombinedViewModel model3 = new CombinedViewModel
{
ApplicationRoles = _roleManager.Roles.Select(r => new SelectListItem
{
Text = r.Name,
Value = r.Id
}).ToList(),
Branches = _context.Brnches.Select(r => new SelectListItem
{
Text = r.BranchCode,
Value = r.Id
}).ToList()
};
return PartialView("_AddUser", model3);
}
سپس در View خود، می توانید از این ViewModel استفاده کنید تا به هر دو مجموعه داده دسترسی پیدا کنید.
ارسال دو یا چند آبجکت به یک ویو در Asp.net Core
حالت اول : برای این کار شما بهتره که جداول رو با هم Join کنید و در قالب یک کوئری و یک مدل اطلاعات رو به سمت View ارسال کنید. ساده ترین حالت Join در انتیتی فریم ورک هم به صورت زیر انجام میشه :
var query = from t1 in _db.Table1 join t2 in _db.Table2 on t1.Id equals t2.Id
select new { ... };
توی لینک زیر هم میتونید نحوه جوین کردن جداول در انتیتی فریم ورک رو بخونید.
جوین (Join) کردن جداول در Entity FrameworkCore
حالت دوم : اما ممکنه شما نتونید جداول خودتون رو جوین کنید. یعنی دو یا چند جدول دارید که ارتباطی با هم ندارن و میخواید در یک View اطلاعات اونها رو نمایش دید. در این صورت شما بهتره یک ComplexModel ایجاد کنید. یعنی یک مدل باید ایجاد کنید که ترکیبی از چند مدل هست و اون مدل رو به ویو ارسال می کنید. این حالت هم در لینک زیر پاسخ داده شده
- آموزش استفاده از پلاگین گردونه شانس در Asp.net core به همراه سورس
- نمایش متن به صورت فرمت شده در CkEditor
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2