DropDown in .Net MVC3

前端 未结 3 2016
盖世英雄少女心
盖世英雄少女心 2021-01-28 03:08

I am trying to create a dropdonw in my MVC web application.

Model

namespace projectname.Models 
{
public class DropDownModel
    {
         public int i         


        
相关标签:
3条回答
  • 2021-01-28 03:51

    You need to give your View the Model which is the listItem.

    return View(listItem);

    0 讨论(0)
  • 2021-01-28 04:10

    There are a few ways of display DropDownList in MVC. Here is my way.

    Note: You need a collection of SelectListItem in model.

    Model

    public class MyModel
    {
        public int SelectedId { get; set; }
        public IList<SelectListItem> AllItems { get; set; }
    
        public MyModel()
        {
            AllItems = new List<SelectListItem>();
        }
    }
    

    Controller

    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();
        }
    }
    

    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

    0 讨论(0)
  • 2021-01-28 04:10

    I would suggest reading more about MVC. You have nothing rendering the dropdown on your view and you have a model that more or less does the same-thing your listitem is doing. This could be handled by one object instead of two. That said :

    Controller

      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);
            }
    
        }
    

    View Note the @Model List at the top of the view. This defines the strongly typed model asigned to the view. This Model is passed from the controller (listitem) to the view.

    @model List<SelectListItem>
    
    @{
        ViewBag.Title = "title";
    }
    
    @Html.DropDownList("name", Model)
    
    <h2>title</h2>
    
    0 讨论(0)
提交回复
热议问题