所以我最初需要的是我需要在MVC控件ListBoxFor中显示两个属性。基本上我想做这样的事情:
@Html.ListBoxFor(m => m.ContractLocations, new SelectList(Model.ContractLocations, "CUSTNMBR", "CUSTNAME" + " - " + "CUSTNMBR" ), new { @class = "form-control row marb10", size = 15 })
但显然它不会让我这样做。所以我假设我需要在ViewModel中创建自定义属性?但我不确定如何在我的模型中组合两个字符串?基本上我想创建类似于ko.computed的东西,它将两个值一起添加,然后我可以在ListBox控件上显示它。虽然我可能会想到这一切都错了,也许还有一个更容易的选择?
那么实现这一目标的最佳选择是什么?
答案 0 :(得分:0)
向模型添加list属性:
public IEnumerable<SelectListItem> ContractLocationsList { get; set; }
在Action
中,构建您的列表,例如:
myModel.ContractLocationsList = new List<SelectListItem>() {
new SelectListItem() { Value = Customer.Id, Text = Customer.Name + " - " + Customer.Number }
};
现在在您的View
中,您可以简单地说:
@Html.ListBoxFor(m => m.ContractLocations, Model.ContractLocationsList, ...)
请注意,ContractLocationsList
包含可供选择的值列表,而ContractLocations
包含实际选定的值。