DropNet在.Net MVC3中

时间:2014-07-02 13:53:59

标签: asp.net-mvc

我正在尝试在我的MVC Web应用程序中创建一个dropdonw。

模型

namespace projectname.Models 
{
public class DropDownModel
    {
         public int id{get; set;}
          puclic string value {get; set;}
    }
}

控制器

using projectname.Models;
{
public class DropDownController: Controller
    {
         public ActionResult Index()   //where Index is one of the view
         {
               List <SelectListItem> listItem = new List<SelectListItem>();
               DropDownModel drop = new DropDownModel();
                drop.id = 1;
                drop.value  = "First";

                listItem.Add(new SelectListItem() {Value = drop.Value, Text = drop.id.toString()});

                return view(listitem);
         }

    }

}

查看

@{
ViewBag.Title = "Home Page";
}

<h2>@ViewBag.Message</h2>

<p>
To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>.

</p>

但是,我的索引视图中没有显示下拉列表。

3 个答案:

答案 0 :(得分:1)

我建议阅读更多有关MVC的内容。您没有在视图中呈现下拉列表,并且您的模型或多或少与您的列表项目所做的相同。这可以由一个对象而不是两个对象来处理。那说:

<强>控制器

  public class HomeController : Controller
    {
        public ActionResult Index()
        {
            List<SelectListItem> listItem = new List<SelectListItem>();
            DropDownModel drop = new DropDownModel();
            drop.id = 1;
            drop.value = "First";

            listItem.Add(new SelectListItem() { Value = drop.id.ToString(), Text = drop.value });


            return View(listItem);
        }

    }

查看 请注意视图顶部的@Model列表。这定义了赋予视图的强类型模型。此模型从控制器(listitem)传递到视图。

@model List<SelectListItem>

@{
    ViewBag.Title = "title";
}

@Html.DropDownList("name", Model)

<h2>title</h2>

答案 1 :(得分:0)

您需要向View Model listItem提供return View(listItem);

{{1}}

答案 2 :(得分:0)

在MVC中有几种显示DropDownList的方法。这是我的方式。

注意:您需要在模型中收集 SelectListItem

模型

public class MyModel
{
    public int SelectedId { get; set; }
    public IList<SelectListItem> AllItems { get; set; }

    public MyModel()
    {
        AllItems = new List<SelectListItem>();
    }
}

控制器

public class HomeController : Controller
{
    public ActionResult Index()
    {
        var model = new MyModel();
        model.AllItems = new List<SelectListItem>
        {
            new SelectListItem { Text = "One",  Value = "1"},
            new SelectListItem { Text = "Two",  Value = "2"},
            new SelectListItem { Text = "Three",  Value = "3"}
        };
        return View(model);
    }

    [HttpPost]
    public ActionResult Index(MyModel model)
    {
        // Get the selected value
        int id = model.SelectedId;
        return View();
    }
}

视图

@model DemoMvc.Controllers.MyModel
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
    @Html.DropDownListFor(x => x.SelectedId, Model.AllItems)
    <input type="submit" value="Submit" />
}

enter image description here