Отображение элементов в выпадающем списке
-
12-12-2019 - |
Вопрос
Я пытаюсь отобразить в выпадающем списке список "запланированных посещений" на основе предыдущих записей.Я могу собрать информацию, но когда я отображаю ее, выпадающий список превращается в поле ввода, и отображается не та моя информация, которая мне нужна.Формат, в котором я хотел бы, чтобы мои элементы отображались, - это :2/10/2012 - В школе.
Вот что у меня есть для моего кода:
Здесь я собираю информацию о дате и месте визита
public JsonResult GetVisitDetails(Guid visitEntryId)
{
var model = new VisitDetailModel();
VisitEntry visitEntry = _visitEntryService.Get(visitEntryId);
if(visitEntry == null)
{
model.Message = string.Format(Message.NotFoundMessage, Resources.Entities.Visit.EntityName);
return Json(model);
}
model.VisitEntryId = visitEntryId;
model.VisitTypeId = visitEntry.VisitTypeId;
if (visitEntry.VisitType != null)
model.VisitType = visitEntry.VisitDate.ToShortDateString();
return Json(model);
}
#region Nested Type:VisitDetailModel
public class VisitDetailModel
{
public Guid VisitEntryId { get; set; }
public short VisitTypeId { get; set; }
public string VisitType { get; set; }
public string VisitDate { get; set; }
public string Message { get; set; }
}
#endregion
Это то, что у меня есть в моей AddToViewModel:
var visits = _visitEntryService.FindAllForCase(viewModel.CaseId, _currentUser.OfficeId).Where(v=>v.VisitDate <= DateTime.Today.SetToMaximumTime()).OrderByDescending(v=>v.VisitDate).ToList();
visits.Insert(0, new VisitEntry());
viewModel.Visits = visits.ToSelectList("VisitEntryId", "Display", viewModel.VisitEntryId.ToString());
if(viewModel.VisitTypes.Count() == 0)
ModelState.AddModelError("",string.Format("No active {0} entered.", Kids.Resources.Entities.VisitType.EntityNamePlural));
Моя страница .ascx для отображения выпадающего списка:
<div class="row">
<%:Html.EditorFor(m=>m.VisitEntryId) %>
<%:Html.LabelFor(m=>m.Visits) %>
<%:Html.ValidationMessageFor(m=>m.VisitEntryId) %>
Моя модель просмотра:
[LocalizedDisplayName("VisitEntry", NameResourceType = typeof(VisitActivity))]
public short? VisitEntryId { get; set; }
[UIHint("DropDownList")]
[DropDownList(DropDownListTargetProperty = "VisitEntryId")]
public IEnumerable<SelectListItem> Visits { get; set; }
Любая информация о том, почему я не могу отобразить выпадающий список, была бы полезна.
Решение
В вашем ascx вы выполняете редактирование для on model.VisitEntryId
который является int
Тебе нужен Html.DropDownFor
для выпадающего списка.
Ваш model.Visits
это список выбора, и я предполагаю, что вам следует сделать:
<%:Html.LabelFor(m=>m.VisitEntryId) %>
<%:Html.EditorFor(m=>m.Visits) %>
<%:Html.ValidationMessageFor(m=>m.VisitEntryId) %>