如果我理解正確,那麼你要顯示在下拉列表中的姓氏和名字,當用戶選擇一個名稱組合,那麼這個人的ID已經用於代替?如果是這樣,那麼下面的代碼是基於我上面的假設。
我已經創建了必要的類,就像我將要做的那樣。請原諒,如果我遺漏了一些東西,下面的代碼沒有經過測試。
你Person
類將是這個樣子:
public class Person
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string FullName
{
get
{
return FirstName + " " + LastName;
}
}
}
我沒有在年齡,不知道有Entity Framework
工作是否會抱怨FullName
不是在人員表中的列名。
創建一個PersonViewModel
類,您將傳入視圖。
public class PersonViewModel
{
public PersonViewModel()
{
Persons = new List<Person>();
}
public int PersonId { get; set; }
public List<Person> Persons { get; set; }
}
在你的控制器,你就會有這樣的事情:
public ActionResult Create()
{
PersonViewModel model = new PersonViewModel();
// Get a list of all the people
// I can't remember how to use Entity Framework to get a list of all the people,
// it's something like the code below
model.Persons = db.Persons;
return View(model);
}
您的文章操作方法:
[HttpPost]
public ActionResult Create(PersonViewModel model)
{
// Do whatever you need to do
}
在您的視圖代碼看起來是這樣的:
@Html.DropDownListFor(
x => x.PersonId,
new SelectList(Model.Persons, "Id", "FullName", Model.PersonId),
"-- Select --"
)
上面的代碼守ld在下拉列表的「文本」部分顯示名字和姓氏,並在下拉列表的值中顯示人物的ID。
我希望你能對:) :)
是'Names'是表中名稱的完整列表嗎?另外,全名是否被認爲是獨一無二的,或者是否有可能有多於一個人(不太可能)具有相同的姓氏和名字? –
你能更具體嗎?你想要你的PersonID是什麼? '。()'返回一個集合,這是你想要的嗎? 顯示名稱時是否要存儲它? –
請提供更多代碼。 什麼是'名稱','模型'和'contactIDquery',這個應該保存在哪裏? –