1

フォームから部分ビューを作成しています。その中で、次のような3つの値を使用してドロップダウンを表示したい:

<td>
    @Html.DropDownList("Yes", "No", "Not Applicable")
</td>

明らかに、そのような値をハードコーディングすることはできませんが、これがアイデアです。このドロップダウンはこのビューでのみ使用するので、可能であればここにロジックを残しておきたいのですが、唯一のことは、選択した値を追跡したいのでId、たとえば、いくつかの非表示の値を追加したいということです。私の見解でこれを行う方法はありますか?ViewBag 引数などを渡すことを考えましたが、これにはもっと洗練された解決策が必要だと本当に思います。

4

2 に答える 2

5
ViewData["myList"] = 
                new SelectList(new[] { "10", "15", "25", "50", "100", "1000" }
                .Select(x => new {value = x, text = x}), 
                "value", "text", "15");

次に、あなたの見解で:

@Html.DropDownList("myList")

または、linq を使用して選択リストを生成できます

IList<Customer> customers = repository.GetAll<Customer>();
IEnumerable<SelectListItem> selectList = 
    from c in customers
    select new SelectListItem
    {
        Selected = (c.CustomerID == invoice.CustomerID),
        Text = c.Name,
        Value = c.CustomerID.ToString()
    };

あなたの場合:

    List<SelectListItem> ls = new List<SelectListItem>();

    ls.Add(new SelectListItem() { Text = "Yes", Value = "true", Selected = true });
    ls.Add(new SelectListItem() { Text = "No", Value = "false", Selected = false });
    ls.Add(new SelectListItem() { Text = "Not Applicable", Value = "NULL", Selected = false });

    ViewData["myList"] = ls;
于 2013-05-05T21:23:38.370 に答える
3

このデータが でのみ必要な場合はView、ヘルパーなしで記述できます。

<select name="PropertyName" id="PropertyName">
    <option value="Yes">Yes</option>
    <option value="No">No</option>
    <option value="Not Applicable">Not Applicable</option>
</select>

そしてアイテムを選択jquery

また

@Html.DropDownList(
    "PropertyName", 
    new SelectList(
        (new List {"Yes", "No", "Not Applicable"}).Select(x => new { Value = x, Text = x }),
        "Value",
        "Text",
        "SelectedValue"
    )
)

また

<select name="PropertyName" id="PropertyName">
    @{string[] list = new string[] { "Yes", "No", "Not Applicable" };}
    @foreach (var item in list)
    {
        <option @if(item == "SelectedValue") { <text>selected="selected"</text> } value="@item">@item</option>
    }
</select>
于 2013-05-05T21:40:02.447 に答える