【问题标题】:DropDownList in ASP.NET MVC 3ASP.NET MVC 3 中的下拉列表
【发布时间】:2011-06-03 20:19:21
【问题描述】:
<div class="editor-label">
    @Html.LabelFor(model => model.Category)
</div>
<div class="editor-field">

    @Html.EditorFor(model => model.Category)
    @Html.ValidationMessageFor(model => model.Category)
</div>

这给了我一个标签和一个文本框。如何获取带有静态选择项的下拉列表来代替文本框。请帮忙。我是 ASP.NET MVC 的新手。我需要 Razor 语法的解决方案/建议。

【问题讨论】:

  • @marc_s :我同意。我花了一段时间才注册。在我注册之前,它不会让我投票或接受答案,然后 OpenId 出现站点错误。直到现在才让我投票。

标签: .net asp.net asp.net-mvc asp.net-mvc-3 drop-down-menu


【解决方案1】:
@Html.DropDownListFor( model => model.Category, new SelectList(new [] {"cat1", "cat2", "cat3"}) );

【讨论】:

    【解决方案2】:

    这是使用模型、视图和控制器填充 DropDownList 的方法。

    首先是视图

    @using Website.Models
    @model PageWithSelectList
    @{
        ViewBag.Title = "Index";
    }
    @Html.DropDownList("DayOfWeek", Model.DaysOfWeek)
    

    然后是Controller和Action方法

    using System.Web.Mvc;
    using Website.Models;
    
    namespace Website.Controllers
    {
        public class HomeController : Controller
        {
            public ActionResult Index()
            {
                var model = new PageWithSelectList();
                model.DayOfWeek = 3;
                return View(model);
            }
        }
    }
    

    和 HTML 输出

    <select id="DayOfWeek" name="DayOfWeek">
    <option value="1">Sunday</option>
    <option value="2">Monday</option>
    <option selected="selected" value="3">Tuesday</option>
    <option value="4">Wednesday</option>
    <option value="5">Thursday</option>
    <option value="6">Friday</option>
    <option value="7">Saturday</option>
    </select>
    

    我希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      另一种填充下拉列表的方法是使用 viewbag。

      控制器:

      public Action Create()
      {
         FillViewBag();
         Return View();
      }
      
      private void FillViewBag()
          {
              List<SelectListItem> selectOptions = new List<SelectListItem>();            
              for(int i = 1; i <= 3; i++)
              {
                  SelectListItem sli = new SelectListItem();
                  sli.Text = "Option " + i.ToString();
                  sli.Value = i.ToString();
                  selectOptions.Add(sli)
              }
              ViewBag.SelectOptions = selectOptions;
           }
      

      在你看来:

       @Html.DropDownListFor(model => model.yourProp, ViewBag.SelectOptions as IEnumerable<SelectListItem>)
      

      希望对您有所帮助!

      【讨论】:

        【解决方案4】:

        你可以使用愚蠢的代码

        控制器

        var list = new SelectList(new[]
                                                  {
                                                      new {ID="1",Name="Employee"},
                                                      new{ID="2",Name="Debtor"},
                                                      new{ID="3",Name="Supplier"},
                                                       new{ID="4",Name="Patient"},
                                                  },
                                   "ID", "Name", 1);
                        ViewData["list"] = list;
        
                        return View();
        

        查看

        <div class="editor-field">
        
        @Html.DropDownListFor(model => model.type,ViewData["list"] as SelectList,
         new { style = "width: 100px;"})
        
        </div>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-05-27
          • 1970-01-01
          相关资源
          最近更新 更多