0

У меня возникли проблемы с доступом к значениям внешнего ключа в моем представлении без использования частичного.Как получить доступ к значениям внешнего ключа в представлении MVC?

У меня есть tblProperty как Primary_Key и tblCustomer как foreign_key. Я хочу получить доступ к значениям моих внешних ключей в моем представлении, но не могу понять, почему.

Модель

public partial class tblProperty 
{ 
    public tblProperty() 
    { 
     this.Images = new HashSet<Image>(); 
     this.tblCustomers = new HashSet<tblCustomer>(); 
    } 

    public int propertyID { get; set; } 
    public string address { get; set; } 
    public string description { get; set; } 
    public virtual ICollection<Image> Images { get; set; } 
    public virtual ICollection<tblCustomer> tblCustomers { get; set; } 
} 

public partial class tblCustomer 
{ 
    public int customerID { get; set; } 
    public string name { get; set; } 
    public decimal contactNumber { get; set; } 
    public string notes { get; set; } 
    public Nullable<int> propertyID { get; set; } 
    public virtual tblProperty tblProperty { get; set; } 
} 

Контроллер

public class propertyController : Controller 
{ 

    propertyDBEntities2 dc = new propertyDBEntities2(); 


    public ActionResult List() 
    { 

     var properties = dc.tblProperties.Include(p => p.tblCustomers); 
     return View(properties.ToList()); 
    } 

    public ActionResult Details(int id = 0) 
    { 
     var properties = dc.tblProperties.Include(p => p.tblCustomers); 
     tblProperty property = dc.tblProperties.Find(id); 
     tblCustomer customer = dc.tblCustomers.Find(id); 
     if (properties == null) 
     { 
      return HttpNotFound(); 
     } 
     return View(dc.tblProperties.Find(id)); 
    } 
    public ActionResult Create() 
    { 
     return View(); 
    } 
    [HttpPost, ValidateAntiForgeryToken] 
    public ActionResult Create(tblProperty e) 
    { 
     if (ModelState.IsValid) 
     { 
      using (dc) 
      { 
       dc.tblProperties.Add(e); 
       dc.SaveChanges(); 
      } 
     } 
     return RedirectToAction("List"); 
    } 

вид

(как model.name пытается получить доступ к имени из tblCustomer)

@model myProject.tblProperty 
@Html.DisplayFor(model => model.name) 
+0

В чем проблема? Intellisense расскажет вам, какие у вас свойства. –

+0

Его дает мне ошибку в моем представлении, когда я использую @ Html.DisplayFor (model => model.name) – theone

ответ

0

tblProperty оленья кожа имеет имя.

Я думаю, что вам нужно

@Html.DisplayFor(model => model.tblCustomer.name) 

Но только отладить его или использовать IntelliSense

EDIT:

В моем проекте я создаю dtoClassПередача данных объекта

Итак, для моего avl cla сс у меня есть dtoAvl

AVL Класс:

public partial class avl 
    { 
     public avl() 
     { 
      this.cars = new HashSet<cars>(); 
     } 

     public long avl_id { get; set; } 
     public Nullable<long> car_id { get; set; } 
     public Nullable<decimal> speed { get; set; } 

     // this class contain info regarding the road 
     public virtual manila_rto manila_rto { get; set; } 
     public virtual ICollection<cars> cars { get; set; } 
    } 

создать dtoAvl

public class dtoAvl 
{ 
    public long Avl_ID { get; set; } 
    public long? Car_ID { get; set; } 
    public string RoadName { get; set; } // came from manila_rto 
    public int Speed { get; set; } 
} 

Моя Controler

List<dtoAvl> result = db.avls.Select(
           r => new dtoAvl 
           { 
            Avl_ID = r.Avl_ID, 
            Car_ID = r.Car_ID, 
            Speed = r.Speed, 

            // here is a propery but can be a list 
            RoadName = r.manila_rto.name 
           }).ToList(); 
return PartialView(result); 

Вид:

@model IEnumerable<dtoAvl> 
+0

Это было первое, что я пробовал, но каким-то образом мои свойства не отображаются. Я должен что-то забыть. – theone

+0

Вы пробовали отлаживать? –

+0

да, похоже, все сделано правильно. Думаю, мне может понадобиться какое-то соединение или другой синтаксис моего представления для доступа к внешним ключам. – theone

 Смежные вопросы

  • Нет связанных вопросов^_^