更新 2、
数時間作業した後、VS 2010 はデフォルトで、従業員 ID と単一の名前を使用して Create メソッドに入力されるテンプレートを生成することに気付きました...
そう、
作成方法:
- ViewBag.employeeid を (ID、複合名) のリストとともに追加します
ビューを作成:
それで全部です。こんな当たり前のことを前に見ないなんて馬鹿げていると思う...
Dave Aさん、どう思いますか?
編集
リストの作成に使用するコードと複合名を追加するだけです。
--> Employee html ヘルパー、SelectList を生成します (選択されたアイテムを含む)
public static class employeeHelper
{
public static IEnumerable<SelectListItem> toSelectListItems(this IEnumerable<employee> Employees, Nullable<Int32> selectedID)
{
List<SelectListItem> lEmployees = new List<SelectListItem>();
foreach (employee ee in Employees)
lEmployees.Add(new SelectListItem
{
Selected = selectedID != null && ee.id == selectedID.Value,
Text = employeeExtender.getEmployeeNames(pp),
Value = pp.id.ToString()
});
lEmployees = lEmployees.OrderBy(p => p.Text).ToList();
return lEmployees;
}
}
--> 複合名を取得するための従業員エクステンダー
パフォーマンスのために Stringbuilder を使用する
public class employeeExtender
{
public static String getEmployeeNames(employee e)
{
if (e == null)
return null;
StringBuilder sb = new StringBuilder();
sb.Append(e.FamilyName.ToLower());
if (!String.IsNullOrEmpty(e.SecondFamilyName) && e.SecondFamilyName.Trim() != String.Empty)
sb.Append(" " + e.SecondFamilyName.ToLower());
sb.Append(", ");
sb.Append(e.Name.ToLower());
//Capitalize String
return Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase(sb.ToString());
}
}