Wie übergeben Sie mehrere Modell in Ansicht, das in ASP.NET MVC?

Problem ist: ich will laufen 3 verschiedene Aktionen, aber ich habe statt dessen wollen gefüttert werden alle Daten von einer einzigen Aktion in ein größeres Modell.

Ich bin mit:

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; }
    }

Verwende ich LINQ, um Daten in diese Modelle.

Ich bin mit :

      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

Dies ist ein Weg, wie ich die Daten einfügen möchten link und Titel aller Klassen.

Meinen versuchen ist das hinzufügen von Daten zu allen 3 Klassen aus unterschiedlichen Quellen und pass das größere Modell ansehen, so dass ich Zugriff auf alle Klassen wie:

@model SearchScrapClass
@using(Html.BeginForm()) {
    @Html.EditorFor(o => o.WClass.link)
    ...
}

Bitte einen Weg vorschlagen

Dank

  • erstellen Sie ein viewmodel, welches alle drei Modelle zusammen und geben den Blick auf das viewmodel.
  • Ich bin verwirrt, warum haben Sie 3 verschiedene Klassen, die alle gleich Aussehen? Warum nicht einfach 3 verschiedene Instanzen der gleichen Klasse?
  • Actaully, die Logik, die ich gezeigt habe, sieht ähnlich aus wie [etwas modifizierter] aber die Quellen, aus denen Sie die fetch-url und der Inhalt ist anders. Also brauche ich unterschiedliche Klassen.
  • ist richtig. Der "richtige" Weg, dies zu tun in MVC ist die Erstellung eines ViewModel, die mit diesen drei Klassen. Die Klassen sind Daten-Modelle. Das ViewModel ist etwas anderes, es sollte enthalten alles, was Ihre Sicht machen muss, richtig.
InformationsquelleAutor Man8Blue | 2012-06-05
Schreibe einen Kommentar