我正在尝试在我的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>
但是,我的索引视图中没有显示下拉列表。
答案 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" />
}