ASP MVC 3, как заставить DisplayFor показывать значение a FK? - PullRequest
0 голосов
/ 17 июня 2011

я новенький с ASP MVC, у меня проблема с отображением значения FK в подробном представлении.

В Displayfor просто отображается идентификатор поля, и я хочу показать значение:

У меня есть 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 голосов
/ 17 июня 2011

Вы должны изменить свою модель, чтобы она выглядела так, как показано ниже

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")
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...