How to pass multiple model in view in ASP.NET MVC?

asp.net, asp.net-mvc, c#, linq, view

Solution

To Expand on my comment, I would suggest creating a ViewModel folder for organization sake. in this add the view model

public class SearchScrapClassViewModel
{
    SearchScrapClass searchScrap;
    WClass wClass;
    SClass sClass;
    YClass yClass;
}

In your controller then you instantiate the new viewmodel

SearchScrapClassViewModel model = new SearchScrapClassViewModel
{
    ....add in your logic to fill your class objects here


}

return view(model);

then in your view add the using for the viewmodel.

@using SearchScrapClassViewModel

Problem

Problem is: I want to run 3 different actions but instead of that i want to fed all data from single action in a bigger model. I am using: ``` public class SearchScrapClass { public WClass WClass { get; set; } public SClass SClass { get; set; } public YClass YClass { get; set; } } public class WClass { public string title { get; set; } public string link { get; set; } } public class SClass { public string title { get; set; } public string link { get; set; } } public class YClass { public string title { get; set; } public string link { get; set; } } ``` I am using LINQ to add data in these models. I am using : ``` var wikians = from info in document.DocumentNode.SelectNodes("//div[@id='span']") from link in info.SelectNodes("div//a").Where(x => x.Attributes.Contains("href")) select new SearchScrapClass //Main Bigger Class { WClass.link= link.Attributes["href"].Value, //ERROR: How to add to WClass's url ? WClass.title= link.InnerText //ERROR: How to add to WClass's url ? } var wikians = from info in document.DocumentNode.SelectNodes("//div[@id='results']") from link in info.SelectNodes("p//a").Where(x => x.Attributes.Contains("href")) select new SearchScrapClass //Main Bigger Class { YClass.link= link.Attributes["href"].Value, //ERROR: How to add to YClass's url ? YClass.title= link.InnerText //ERROR: How to add to YClass's url ? } //Also for the 3rd class (model) return View(wikians); //and then return bigger class model so that i can access them in view ``` This is one way i want to add data to link and title of all the classes. My try is to add data to all 3 classes from different sources and pass the bigger model to view so that i can access all the classes as: ``` @model SearchScrapClass @using(Html.BeginForm()) { @Html.EditorFor(o => o.WClass.link) ... } ``` Please suggest a way Thanks

Original source