次のように、ビューの各行に対して生成されるフィールドがあります。
@Html.DropDownListFor(m => m.MenuParentKey, ViewBag.MenuKeys as SelectList)
ただし、コントローラーでアクションを呼び出すことにより、行ごとにドロップダウンを個別に入力する必要があります。つまり、次のようになります。
public ActionResult GetMenuKeys(string currentMenuKey)
{
var dictionary = MenuKeys.Where(mk => mk.Key != currentMenuKey);
return View(new SelectList(dictionary,
"Key",
"Value",
Page.DefaultParentKey));
}
currentMenuKey
現在の行に従って指定する必要があります。現在の行の値をドロップダウンから除外する必要があります(親キープロパティであることに注意してください)。