0
我刚刚开始学习MVC。模型 - 基于其他字段值的字段
我创建了一个简单的模型:
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; }
}
现在我已经决定,我想包括一个下拉所有StaffMembers
的列表中创建页上的观测记录。我能做到,与下面的代码:
@Html.DropDownListFor(o => o.StaffMemberId,
new SelectList(Model.StaffMembers,
"StaffMemberId",
"Forename",
Model.StaffMemberId),
"-- Select Staff Member --")
这完美的作品,虽然,你会发现,我只能包含一个字段,"Forename"
。
我想要下拉列表显示职员的全名。我尝试手动连接字段,即"Forename" + " " + "Surname"
,但抛出和例外情况是没有“Forename”+“”+“Surname”这样的字段。
我的问题是这样的 - 是否可以添加到我的模型某种属性,它只是基于两个现有属性的值。喜欢的东西:
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
值,即使该字段显示正确的值在调试时。
我用下面的自动填充分贝用一些测试数据:
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();
任何指针将在此处非常有用,尤其是当我在完全错误的方式接近这一!
完美,谢谢! –