我有分类模型
public class Category
{
//[PlaceHolder("Select file")]
//[UmbracoRequired("Form.Label.Import.SelectFile")]
//[UmbracoDisplay("Form.Label.Import.SelectFile")]
//[Required]
public int Id { get; set; }
public string Name { get; set; }
}
以及在我的控制器中创建的类别列表
List<Category> items = new List<Category>();
类别列表应该在(强类型)视图中使用,其中我有一个foreach循环显示另一个模型课程,例如。
<td>
@Html.DisplayFor(modelItem => item.Students)
</td>
<td>
@Html.DisplayFor(modelItem => item.AdmissionInfo)
</td>
<td>
@Html.DisplayFor(modelItem => item.CategoryId)
</td>
所以而不是
@Html.DisplayFor(modelItem => item.CategoryId)
它应显示Category类型的Name属性,具体取决于Course model
的CategoryId值SelectList categories = new SelectList((IEnumerable<MvcImport.Models.Category>)ViewData["categories"], "Id", "Name", item.CategoryId);
例如
@Html.DisplayFor(categories.Where(m => m.Id == item.CategoryId).FirstOrDefault())
但最后一行不起作用。
不确定如何只调用该值。 (我不想显示下拉列表,只显示所选值)
由于
答案 0 :(得分:1)
您可以尝试这种方式:
@Html.DisplayFor(modelItem => categories.First(m => m.Id == item.CategoryId).Name)
或更安全(为便于阅读而格式化):
@Html.DisplayFor(modelItem => categories.Where(m => m.Id == item.CategoryId)
.Select(m => m.Name)
.FirstOrDefault())
答案 1 :(得分:0)
这个对我有用:
@Html.DropDownListFor(x =>item.RequestTypeID, new SelectList(ViewBag.RequestTypes, "Value", "Text", item.RequestTypeID))