3

MVC3での作業。データベーステーブルから入力されたDropDownListがすでにあります。

現在、Units.Nameのみが入力されていますが、ユーザーがアイテムを選択したときにIDを取得し、[作成]ボタンをクリックしたときに使用するために、Unit.Id(ドロップダウンリストに非表示になります)も入力したいと思います。 (POSTメソッド)。

このように機能させるには、何を変更する必要がありますか?

これは些細なことですが、MVCの初心者です。私は多くの可能性を試しましたが成功しませんでした。

コントローラ...

public ActionResult Create()
{

private BridgeEntities db = new BridgeEntities();


    var query = (from units in db.Units
                 select units).ToList().OrderBy(q => q.Name);

    List<string> listOfUnits = new List<string>();
    foreach (var item in query)
    {
        listOfUnits.Add(item.Name);
    }
    ViewBag.ListOfUnits = listOfUnits;


    return View();
} 

ビューの作成...

@Html.DropDownList("Unit",new SelectList(ViewBag.ListOfUnits))

[作成]ボタン...

<button type="submit" class = "btn btn-success">
    <i class="icon-plus icon-white"></i> Create
</button>

前もって感謝します!

4

2 に答える 2

3
ViewBag.ListOfUnits = new SelectList(db.Units.OrderBy(q => q.Name).ToList(), 
                                         "Id", 
                                         "Name");

アップデート:

頭のてっぺんから:

// Select Ids to exclude from list
IQueryable<int> exclude = db.DeprecatedUnits.Select(p => p.UnitID);

// Select units for selectlist, ignore the ids which are in exclude list
var units = db.Units.Where(q => !exclude.Contains(q.Id)).OrderBy(q => q.Name).ToList();

// Create the selectlist
ViewBag.ListOfUnits = new SelectList(units,"Id","Name");
于 2013-03-12T09:58:00.507 に答える
1
ViewBag.ListOfUnits = (from units in db.Units select units)
                      .ToList().OrderBy(q => q.Name)
                      .Select(s => new SelectListItem 
                      { 
                          Text = s.Name, 
                          Value = s.Id// or s.ID , what property does your model have...
                      };
于 2013-03-12T09:55:12.180 に答える