#.net #asp.net #asp.net-mvc #asp.net-mvc-3 #drop-down-menu
#.net #asp.net #asp.net-mvc #asp.net-mvc-3 #выпадающее меню
Вопрос:
<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.
Комментарии:
1. @marc_s : Я согласен. Мне потребовалось некоторое время, чтобы зарегистрироваться. Это не позволит мне проголосовать или принять ответ, пока я не зарегистрируюсь, а затем произошла ошибка сайта с OpenID. До сих пор мне не разрешали голосовать.
Ответ №1:
@Html.DropDownListFor( model => model.Category, new SelectList(new [] {"cat1", "cat2", "cat3"}) );
Ответ №2:
Вот как вы могли бы заполнить выпадающий список, используя модель, представление и контроллер.
Сначала просмотр
@using Website.Models
@model PageWithSelectList
@{
ViewBag.Title = "Index";
}
@Html.DropDownList("DayOfWeek", Model.DaysOfWeek)
Затем контроллер и метод действия
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>