Как реализовать таблицу поиска в MVC Framework? - PullRequest
0 голосов
/ 25 января 2011

Asp.net MVC2: в моем приложении mvc много выпадающих списков. Сначала я начал с создания таблицы для каждого с уникальным идентификатором и именем и ссылки на них в контроллерах и представлениях. Приложение стало больше, и было предложено использовать таблицу поиска, которая содержит lookuptype и lookupvalue в качестве составного первичного ключа и заполнить все значения для раскрывающихся списков в нем. Я просмотрел весь интернет, единственный метод, используемый для mvc - это одна таблица для каждого выпадающего списка! Может кто-нибудь объяснить мне, как я могу это реализовать, и, пожалуйста, подробно, потому что я полностью потерян. Ссылка на учебник также была бы отличной. Я использую vb.net и linq to sql.

Ответы [ 3 ]

0 голосов
/ 01 февраля 2011

Я на самом деле использовал немного другой подход. Я создал таблицу с составным первичным ключом LookupName и LookupValue. Затем в текстовом тексте я объявил метод, который принимает имя поиска в качестве параметра, а затем выводит список значений поиска, чье имя поиска соответствует этому параметру. В исходной таблице (ex.Contact) я создал поле с именем status, в котором будет сохранено выбранное значение. Затем в контроллере я использовал viewdata для создания выпадающих списков.

Пример: _db представляет текстовый текст данных

Viewdata ('Status') = новый список выбора (_db.Getlookupname ('status'), 'lookupname', 'lookupname')

и затем в представлении

html.dropdownlist ( 'статус')

Я также назвал выпадающий список с тем же именем поля «status», которое находится в целевой таблице «Contact».

И это сработало, без каких-либо сложностей или ошибок. Спасибо за помощь. И я надеюсь, что это будет полезно для кого-то еще!

0 голосов
/ 16 февраля 2011

Вот своего рода учебник о том, как создать универсальный сервис поиска.

http://wtfperminute.blogspot.com/2011/02/working-with-reference-data-lookups.html

Подобно тому, что вы сделали, но, возможно, немного более всеобъемлющим.

0 голосов
/ 25 января 2011

Предположим, что в ваших таблицах есть столбцы ID, Name и Value. Теперь, имея только одну таблицу, эта таблица, скорее всего, будет выглядеть так:

create table Lookup
(
    LookupID int not null identity
        primary key,
    LookupTypeID int not null
        references LookupType(LookupTypeID),
    Name nvarchar(50) not null,
    Value int not null,
    unique(EnumTypeID, Name)
)
go

Эта таблица гарантирует, что внутри одних и тех же имен типов не будет конфликтов.

Во всяком случае. Конечно, вы можете иметь аналогичный класс модели приложения (не данных)

public class EnumValue
{
    public int Id { get; set; }

    [Required]
    public string Name { get; set; }

    [Required]
    public int Value { get; set; }
}

Поэтому, когда вы получаете значения определенного типа, вы всегда можете сгенерировать IList<EnumValue> из них и передать их определенному выпадающему списку.

Поскольку вы не предоставили каких-либо ценных данных, в этой таблице и классе можно было бы опустить столбец / свойство Value, поскольку в зависимости от внутренней работы он может вообще не понадобиться. Но вы будете знать это лучше всего, потому что знаете свои требования к приложениям. Вместо этого столбца / свойства может помочь только идентификатор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...