簡體   English   中英

從對象的C#列表中獲取下拉列表選擇的選項

[英]Get dropdownlist selected option from C# list of objects

我有在C#的Razor視圖中收到的對象的列表

 @model IEnumerable<Project.Models.EvaluationObject>

在IEnumerable的每個對象中,我都有一個名為“ MaxValue”的屬性,我希望將其放入html輸入選擇中。

  foreach(var item in Model){
        <select>
            <option value=1>One</option>
            <option value=2>Two</option>
            <option value=3>Three</option>
            <option value=4>Four</option>
        </select>

  }

對於每個項目,我想使用該項目的值構建一個選擇輸入。

即在第一個循環item.MaxValue = 3,然后我應該建立下一個選擇:

       <select>
            <option value=1>One</option>
            <option value=2>Two</option>
            <option value=3 selected="selected">Three</option>
            <option value=4>Four</option>
        </select>

item.MaxValue介於1到4之間,因此如果該值為3,則選擇輸入中的所選值為3。

我的第一個解決方案是在每個選項中放置一個if語句,但是我認為這是不切實際的:

 foreach(var item in Model){
    <select>
        <option value=1 @if(item.MaxValue==1){<text>selected="selected"</text>})>One</option>
        <option value=2 @if(item.MaxValue==2){<text>selected="selected"</text>}>Two</option>
        <option value=3 @if(item.MaxValue==3){<text>selected="selected"</text>}>Three</option>
        <option value=4 @if(item.MaxValue==4){<text>selected="selected"</text>}>Four</option>
    </select>

 }

希望您能幫到我,也許我應該使用一些JavaScript。

您可以將IEnumerable<SelectListItem>添加到模型中:

模型:

public class EvaluationObject
{
    public IEnumerable<SelectListItem> EvaluationList
    {
        get
        {
            return Enumerable.Range(1, 4)
                             .Select(x => new SelectListItem
                                 {
                                     Selected = x == MaxValue,
                                     Text = NumberToWord(x),
                                     Value = x
                                 });
        }
    }

    public int MaxValue { get; set; }

    public int EvaluationNumber { get; set; }
}

視圖:

foreach (var item in Model) 
{
    @Html.DropDownListFor(x => x.EvaluationNumber, item.EvaluationList)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM