저는 문자 그대로 방금 MVC를 배우기 시작했습니다. 지금은 내가 관찰 기록의 작성 페이지의 모든 StaffMembers
의 드롭 다운 목록을 포함 할 것을 결정했다모델 - 다른 필드의 값을 기반으로 한 필드
public class StaffMember
{
public Guid StaffMemberId { get; set; }
public string Forename { get; set; }
public string Surname { get; set; }
public string Team { get; set; }
public virtual ICollection<Observation> Observations { get; set; }
}
:
나는 간단한 모델을 만들었습니다. 나는 다음과 같은 코드를 그렇게 관리 : 당신은 내가 단일 필드, "Forename"
만 포함 할 수 있음을 알 수 있습니다,하지만
@Html.DropDownListFor(o => o.StaffMemberId,
new SelectList(Model.StaffMembers,
"StaffMemberId",
"Forename",
Model.StaffMemberId),
"-- Select Staff Member --")
이 완벽하게 작동합니다.
직원 목록을 드롭 다운 목록에 표시하고 싶습니다. 즉, "Forename" + " " + "Surname"
필드를 수동으로 연결하려고했지만 "Forename"+ ""+ "성"과 같은 필드가없는 것에 대해서는 예외가 발생했습니다.
제 질문은 내 모델에 단순히 기존 속성 두 개 값을 기반으로하는 일종의 속성을 추가 할 수 있습니까? 뭔가 같은 :
public class StaffMember
{
private string _fullName;
public Guid StaffMemberId { get; set; }
public string Forename { get; set; }
public string Surname { get; set; }
public string Team { get; set; }
public virtual ICollection<Observation> Observations { get; set; }
public string FullName
{
get
{
return _fullName;
}
set
{
value = this.Forename + " " + this.Surname;
_fullName = value;
}
}
}
내가 위를했지만, 내 데이터베이스를 (내가 먼저 개체 모델 코드를 사용하고 있습니다) 채우는 경우, 해당 필드는 항상 디버깅 할 때 필드가 올바른 값을 보여줍니다에도 불구하고,
null
의 값이 . 내가 자동으로 다음 사용하고
는 몇 가지 테스트 데이터로 DB를 채울 :
var staff = new List<StaffMember>
{
new StaffMember
{
Forename = "Bob",
Surname = "Hope",
StaffMemberId = Guid.NewGuid(),
Team = "Test"
},
new StaffMember
{
Forename = "Stan",
Surname = "Laurel",
StaffMemberId = Guid.NewGuid(),
Team = "Test"
}
};
staff.ForEach(s => context.StaffMembers.Add(s));
context.SaveChanges();
모든 포인터는 여기에 정말 유용 할 것, 내가 완전히 잘못된 방법으로이 문제를 접근하고, 특히!
을 사용하여이 모델에 다시 값을 설정하지 않으므로
set
이 필요하지 않습니다. 감사합니다. –