Получить существующие категории из базы данных (желательно через репозиторий, но для краткости я просто показываю запрос Linq to Entities):
var db = new YourObjectContextImplementation();
var categories = db.Categories.AsEnumerable();
Перешлите их в ваше представление через модель представления.По вашему мнению, вы выводите форму как-то, чтобы пользователь мог добавить объявление.Вместо того, чтобы давать им текстовое поле (или список выбора) для идентификатора категории, вы даете им список выбора, где значение является идентификатором, а text / inner html является категориейназвание.Таким образом, пользователь видит только имя, но ваше действие получает целочисленный параметр, переданный ему.
ОБНОВЛЕНИЕ в ответ на комментарий:
Я предполагаю, что вы в настоящее время передаете новыйClassified
объект как модель представления, а затем использование помощников EditorFor
?Все хорошо, но вам, вероятно, следует обернуть объект Classified
в конкретную модель представления, например ClassifiedAddModel
, следующим образом:
public class ClassifiedAddModel
{
public Classified NewClassified { get; set; }
public IEnumerable<Category> ExistingCategories { get; set; }
}
Затем можно создать экземпляр и заполнить объект ClassifiedAddModel
вдействие контроллера, передайте его в качестве модели вашему представлению и создайте форму, используя синтаксис, такой как
<%: Html.EditorFor(Model.NewClassified.Description) %>
<%: Html.EditorFor(Model.Categories "CategoriesEditor") %>
, где "CategoriesEditor"
- это имя пользовательской модели представления, которая принимает категории и отображает список выбора сих.Однако главное в приведенном выше примере - показать, как вы можете получить доступ как к свойствам объекта Classified
, так и ко всем существующим категориям.