2009-07-28 8 views
1

Ich habe eine benutzerdefinierte Entität erstellt, weil ich eine Entität mit Daten aus einer Verknüpfung in L2S füllen muss.Erstellen einer stark typisierten MVC-Ansicht basierend auf einer benutzerdefinierten Linq2Sql-Klasse

Wenn ich mit der rechten Maustaste auf den ActionResult-Code im Controller auf "Ansicht hinzufügen" klicke und dann "Stark typisierte Ansicht erstellen" wähle, wird meine Klasse nicht in den im Selektor verfügbaren Klassen angezeigt. Ich bin mir nicht sicher warum. Hier ist mein Code:

//The Model 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Data; 
using System.Data.SqlClient; 

namespace FurnitureStore.Models.Repository 
{ 
    public class FurnitureRepository 
    { 
     public IQueryable<Listing> GetProductListings() 
     { 
      FurnitureDataContext dc = new FurnitureDataContext(); 

     return (from p in dc.Products 
       join c in dc.Categories 
       on p.CategoryId equals c.CategoryId 
       select new Listing 
       { 
        ProductName = p.ProductName, 
        CategoryDescription = c.CategoryDescription 
       }); 
    } 
} 
} 

//The entity class 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 

namespace FurnitureStore.Models 
{ 
    public class Listing 
    { 
     public string ProductName { get; set; } 
     public string CategoryDescription { get; set; } 
    } 
} 

//The Method in the Controller 
public ActionResult ProductListings() 
{ 
    FurnitureRepository fr = new FurnitureRepository(); 
    var listings = fr.GetProductListings(); 
    return View("ProductListings",listings); 
} 

Antwort

1

Erstellen Sie einfach eine normale Ansicht und bearbeiten Sie die Seitendefinition der Ansicht (erbt Attribut spezifisch) selbst.

<%@ Page ... Inherits="System.Web.Mvc.ViewPage<IQueryable<FurnitureStore.Models.Listing>>" %> 

Aus der Spitze von meinem Kopf kann ich nicht beantworten, warum es nicht in Ihrer Klassenauswahl erscheint.

HTHS
Charles

3

Stellen Sie sicher, dass Sie den Code kompilieren, wenn der Code nicht kompiliert wird, die neu hinzugekommenen Klassen in den Klassen in der Auswahl

+1

, dass der absolut richtigen Weg ist, zu lösen ShowUp nicht Dies! –

Verwandte Themen