Я пробовал различные способы заставить это работать. Я думаю, может быть, у меня что-то не хватает в моей модели или контроллере, поэтому я размещаю все три части.Показать выбранные элементы в списке выбора нескольких файлов
У меня есть данные в базе данных, которые показывают некоторые рекомендации, выбранные советником в предыдущем назначении. Когда консультант называет это назначение, приложение должно отображать список всех возможных тем с выбранными ранее выделенными. Все работает, кроме последнего бит.
Я знаю, что получаю правильную информацию, потому что я могу отображать выбранные элементы отдельно. Я просто не могу заставить их выбраться. Вот код. Я вырезаю ненужные части.
public class AppointmentModel
{ ...
public string AdvisingTopicId { get; set; }
public List<SelectListItem> AdvisingIdList { get; set; }
public SelectList AdvisingTopicNames { get; set; }
}
public class HomeController : AdvisorBaseController
{ ...
var topicCodes = appointment.advising_topic.ToList();
var advisingTopics = new SelectList((from t in topicCodes
select t.name).ToList(), "name");
var topicsList = (from t in db.advising_topic
select new SelectListItem
{
Selected = false,
Text = t.name,
Value = SqlFunctions.StringConvert((double)t.advising_topic_id).Trim()
}).ToList();
foreach (var topicCode in topicCodes)
{
var selTopic = topicsList.Find(x => x.Value == topicCode.advising_topic_id.ToString());
if (selTopic != null)
{
selTopic.Selected = true;
}
} ...
var appointmentModel = new AppointmentModel
{ ...
AdvisingTopicNames = advisingTopics,
AdvisingIdList = topicsList,
};
, а затем вид
@model AcademicAdvising.Models.AppointmentModel
<h3>Advising Topics</h3>
<ul>
@foreach (var item in Model.AdvisingTopicNames)
{
<li>@Html.DisplayFor(x => item)</li>
}
</ul>
@Html.ListBoxFor(m=>m.AdvisingIdList, new SelectList(Model.AdvisingTopicNames, "Value", "Text", Model.AdvisingTopicNames.SelectedValue))
Обратите внимание, что Еогеасп корректно отображает выбранные элементы. Это просто для тестирования и вытащит. ListBoxFor - это то место, где я боюсь. То, что у меня здесь, не работает (показывает полный список, ничего не подсвеченный). И это тот бит, где я пробовал разные подходы, и все не удается.
Брайан Робертс. То есть @ Html.ListBox («myLB», Model.AdvisingIdList) возвращает список выделенным. Поэтому я собираюсь отметить это как «Ответ» и уйти и попытаться выяснить, почему он не работает с ListBoxFor. – user2283231
Иногда могут возникать проблемы с именами. Посмотрите на имена, которые вы определяете, и убедитесь, что вы не используете их повторно. Обратите внимание на параметры строки запроса и элементы, которые помещаются в сумку просмотра. –