ASP MVC 3如何让DisplayFor显示一个FK的值?

时间:2011-06-17 05:31:11

标签: asp.net-mvc-3

我是ASP MVC的新手,我在详细信息视图中显示FK值时出现问题。

显示屏只显示字段的ID,我想显示值:

我有2个这样的模特:

namespace APP.Models
{

    public class Category{

        public int ID{get;set;}
        public string Name {get;set;}
    }

    public class Book{

        public int ID{get;set;}
        public string Title{get;set;}
        public int CategoryID{get;set;}
    }

}

那么如何在我的详细信息视图中显示类别名称?:

@Html.Displayfor(model = > model.??)

我想显示类别名称而不是类别ID

谢谢你们

1 个答案:

答案 0 :(得分:0)

您必须将模型更改为如下所示

public class Book{

    public int ID{get;set;}
    public string Title{get;set;}
    public int CategoryID{get;set;}
    public Category Category{get;set;}
}

然后

@Html.Displayfor(model => model.Category.Name)

修改:显示类别

将类别列表传递给控制器​​操作

中的视图
ViewBag.Categories = //get all categories

然后在你看来

@Html.DropDownListFor(
    book => book.CategoryID,
    new SelectList((IEnumerable<Category>)ViewBag.Categories, "ID", "Name")
)