PDA

View Full Version : سوال: ارسال چند Model به یک View



SianiD
سه شنبه 25 تیر 1392, 11:25 صبح
سلام دوستان و اساتید
من نیاز دارم یکی از View هام از سه تا مدل استفاده کنه ، واسه این کار من یک کلاس درست کردم و هر سه رو درون اون آوردم به این صورت :



public class HomeContent
{
public IEnumerable<ParentMenu> PMenu { get; set; }

public IEnumerable<MyContent> PContent { get; set; }

public IEnumerable<MyCustomer> PCustomer { get; set; }
}




بعد در کنترولرم این کلاس رو به صورت زیر واسه View ارسال کردم :



public ActionResult Index()
{

HomeContent hc = new HomeContent();

return View(hc);
}



کد داخل View هم این هستش :



@model MyProject.Classes.HomeContent

@foreach (var item in Model.PMenu)
{
<li><a href="#"> @Html.DisplayFor(modelItem => item.Name)</a></li>
}



نمیدونم مشکل کار کجاست که Foreach این ارور رو میده :

Object reference not set to an instance of an object.



چیکار کنم ؟ :افسرده:

SianiD
سه شنبه 25 تیر 1392, 11:38 صبح
یکاری کردم نمیدونم تا چه حد این کار درست باشه فعلا جواب داد ، تست میکنم اگه مشکلی نداشت میذارم دوستان استفاده کنند :لبخندساده:

mze666
چهارشنبه 26 تیر 1392, 03:47 صبح
دوست عزیز شما مقادیر اون ViewModel رو set نکردید و بعد توی View براش foreach نوشتید که ارور میده. شما باید توی Controller؛ داخل اکشن Index مقادیر رو بهش بدید مثل کد زیر:
var content = new HomeContent {
PMenu = PMenuData,
PContent = PContentData,
PCustomer = PCustomerData
};

return View(content);

SianiD
چهارشنبه 26 تیر 1392, 08:37 صبح
آره دقیقا همین بود اشتباهم بعد از مقدار دهی درست شد :لبخندساده:
ممنون از توضیحات دوست عزیز