استفاده از 2 مدل در یک View
با سلام
من در یک ویو می خوام یک فرم برای دریافت و فرستادن اون برای insert شدنش استفاده کنم حالا مشکلی که من دارم اینه که این فرم تعدادی از فیلد هاش باید از یک table خونده بشه و چند تا از این فیلدای این فرم رو پر کنه و یه تعداد از فیلد ها رو هم کاربر وارد می کنه و نهایناً اطلاعات post میشه و در یک table دیگه باید ذخیره بشه. حالا با این وضعیت من در بالای صفحه برای دسترسی به فیلد ها مجبورم دو تا مدل (model@) بنویسم تا بتونم به فیلدها دسترسی داشته باشم ولی موقع بیلد کردن به مدل دومی خطا میده برای حل این مشکل چه راهی پیشنهاد می کنین؟؟
(فیلدهای جدول اول در جدول دوم موجود می باشد و جدول اول باید محتویاتش بیاد تو جدول دوم و کاربر هم اطلاعات دیگه رو وارد کنه و در نهایت پست بشه برای عملیات Insert)
نقل قول: استفاده از 2 مدل در یک View
چرا از ویومدل استفاده نمیکنید
یک ویو مدل بسازید که دارای پراپرتی هایی از نوع دو مدل که باید در ویو نمایش داده بشن داشته باشید بعد ویو مدل را در ویو اضافه کنید
نقل قول: استفاده از 2 مدل در یک View
نقل قول:
نوشته شده توسط
milan2004
چرا از ویومدل استفاده نمیکنید
یک ویو مدل بسازید که دارای پراپرتی هایی از نوع دو مدل که باید در ویو نمایش داده بشن داشته باشید بعد ویو مدل را در ویو اضافه کنید
اگه امکان داره میشه یه مثال ساده در قالب یک پروژه با فیلدای کم بزنین تا کامل متوجه بشم؟
نقل قول: استفاده از 2 مدل در یک View
من تو پوشه مدل یک کلاس ساختم به اسم XMLbetViewModel بعد آمدم دو تا از جداولی که داشتم رو اینا به عنوان property قرار دادم :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using DataLayer;
namespace League2.Models
{
public class XMLbetViewModel
{
public IEnumerable<XML> XMLs {get;set;}
public IEnumerable<Bet> Bets { get; set; }
}
}
سپس رفتم تو ویو و اونجا این مدل رو به این صورت فراخوانی کردم
@model League2.Models.XMLbetViewModel
ولی موقعی که @Model رو میزنم فیلدای این دو تا جدول رو نمیاره و فقط اسم جداول رو میاره
حالا من چکار کنم که بتونیم همزمان به فیلدای این دو جدول دسنرسی پیدا کنم چون می خوام در نهایت این اطلاعات در فرم رو تو بانکم ذخیره کنم.
نقل قول: استفاده از 2 مدل در یک View
نقل قول: استفاده از 2 مدل در یک View
احتمالا باید به این صورت کار کنی
کد HTML:
@model yournamespace.XMLbetViewModel
@html.displayfor(x=>x.xmls.firstordefault().name)
و همینطور برای Bets
و برای نمایش مقادیر پراپرتی از foreach استفاده کنید