2017-11-26 2 views
0

두 개의 클래스 AddressState (내 데이터베이스에는 해당 테이블이 있음)이 있습니다.외래 키로 연결된 속성을 표시하는 면도기

두 가지 속성이 있습니다 IdName

주소을 가지고 내 주소 클래스에 내가 StateId이 외래 키

[Required] 
[ForeignKey("State")] 
public int AddressStateId { get; set; } 
으로 표시가,

또한 StateId 재산 (다른 사람의 사이에)

내보기에서 주소 개체의 속성을 표시 할 때 어떻게해야합니까? StateId 대신 상태 이름을 재생 하시겠습니까? 나는 Address 클래스에 새로운 속성이 필요하다고 생각하지 않는다. 다른 테이블을 어떻게 든 참조해야한다고 생각한다.

내가 지금 뭐하는 거지 방법은보기가 강하게 Address 실체에 입력되어,

@Html.DisplayFor(modelItem => modelItem.AddressStateId) 

답변

1

당신은 Address 클래스

public class Address 
{ 
    public string AddressLine1 { set;get;} 
    public int StateId { set;get;} 
    public virtual State State { set;get;} 
} 
public class State 
{ 
    public int Id { set; get; } 
    public string Name { set;get;} 
} 

가정에 유형 Statevirtual 속성을 추가해야합니다입니다 클래스에서보기에서 State 탐색 속성에 액세스하고 Name 속성 값

을 사용할 수 있습니다.210
@model Address 
<h1>@Model.State.Name</h1> 
<p>Or use the DisplayFor helper</p> 
@Html.DisplayFor(m=>m.State.Name) 
+0

아,/페이스 팔. 이미 네비게이션 속성을 사용했음을 기억하지 못했습니다. 또한 추가하려면 내 컨트롤러에서 주소를 얻을 때 (db 컨텍스트 변수를 통해) 주소가 자동으로 선택되지 않아서 .Include ("States")를 추가해야했습니다. 예'var addresses = db.Addresses.Include ("State"); ' –

+0

보기가 주소 목록에 강력하게 입력되어 있습니까? – Shyju

+0

Address 클래스와 다른 클래스가 포함 된 클래스에 입력됩니다. 그래서 Model.Address에 의해 Address 속성에 액세스해야합니다. <무엇이든 소품> –