1

我有类别模型

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)

它应该根据 Course 模型的 CategoryId 值显示 Category 类型的 Name 属性

SelectList categories = new SelectList((IEnumerable<MvcImport.Models.Category>)ViewData["categories"], "Id", "Name", item.CategoryId);

例如。

@Html.DisplayFor(categories.Where(m => m.Id == item.CategoryId).FirstOrDefault())

但是最后一行不起作用。

不知道如何只调用值。(我不想显示下拉列表,只是选择的值)

谢谢

4

2 回答 2

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())
于 2014-08-06T16:32:44.853 回答
0

这个对我有用:

@Html.DropDownListFor(x =>item.RequestTypeID, new SelectList(ViewBag.RequestTypes, "Value", "Text", item.RequestTypeID))
于 2017-10-31T15:56:38.040 回答