【发布时间】:2010-01-26 20:59:33
【问题描述】:
我继续前进,然后又回到这个,但我仍然无法让它工作。
var companiesList = subcontractRepository.SubcontractCompanies(Subcontract.subcontract_id);
IEnumerable<Guid> selectedList = companiesList.Select(a => a.Id);
Companies = new MultiSelectList(companiesList, "Id", "Name", selectedList);
在 SubcontractRepository.cs 中
public class SelectCompanyItem
{
public string Name { get; set; }
public Guid Id { get; set; }
}
public IEnumerable<SelectCompanyItem> SubcontractCompanies(Guid id)
{
return
from c in db.companies
select new SelectCompanyItem
{
Name = c.company_name,
Id = c.company_id
};
}
查看:
<p>
<label for="Companies">Company:</label>
<%= Html.ListBox("Companies", Model.Companies) %>
<%= Html.ValidationMessage("Companies", "*") %>
</p>
生成的html:
<p>
<label for="Companies">Company:</label>
<select id="Companies" multiple="multiple" name="Companies"><option value="4cf411d0-e111-488b-822f-ea194951cfda">Second Company</option>
<option value="1c21e613-a668-4817-bf6d-73befb8c9dbd">Test Company</option>
</select>
</p>
【问题讨论】:
-
看来您正在尝试选择列表中的所有项目,对吗?你看过生成的 HTML 吗?
-
是的。我试图通过删除我的选择标准来简化它,然后让它首先选择所有。将生成的html添加到原始帖子中。
-
从您的 html 看来,所选属性似乎没有被呈现。因此,请检查您的 selectedList 值,它们可能未填充或不匹配。尝试为 selectedValued 做一个 List
看看它是否有效。 -
我检查了 selectedList 中的 id 与呈现的 html 中的匹配。我转换为 List
仍然没有选择任何内容。
标签: c# asp.net-mvc multi-select