Я объясню общий сценарий.Чтобы объяснить мою проблему, я бы попросил немного терпения, пока не объясню, как я реализовал свою страницу поиска.У меня есть таблица [Users] и таблица [Address], на основе которых я получил VIEW в SQL - [vw_User_Addr] .Я использую L2S, чтобы получить строго типизированный класс vw_User_Addr.
Теперь у меня есть страница поиска, поэтому, очевидно, я получу ее из этого класса, например:
<%@ Page Title="User Search" ... Inherits="System.Web.Mvc.ViewPage<MyDAL.vw_User_Addr>" %>
Действие «Мой список» возвращает список, который я использую в представлении для формирования таблицы Grid.Все хорошо, пока здесь.Теперь я хочу реализовать поиск на этой странице.Это то, что я нашел -
- В контроллере во время действия списка я создаю ViewData ["Usr"] = new vw_User_Addr ();
В моем представлении я делаю:
<% MyDAL.vw_User_Addr usr = ((MyDAL.vw_User_Addr) (ViewData ["Usr"]));%>
Затем я использую этот объект "usr", чтобы связать свой элемент управления поиском, например:
<% = Html.TextBox ("FirstName", usr.FirstName)%>
Наконец, в моем действии обработчика HttpPost я возражаю vw_User_Addr вроде:
[HttpPost] public ActionResult List (vw_User_Addr searchObj) {...}
Я использую этот searchObj для извлечения значений, которые пользователь мог заполнить в элементах управления поиском, а затем я выполняю поиск.
Так что, надеюсь, я хорошо объяснил.Вот как я делаю свой поиск в MVC2.Вот мои проблемы / вопросы :
Когда я нажимаю кнопку поиска изображения, я получаю обратную передачу, но она запускает ModelValidation, который выдает ошибку.Не со всеми, но по крайней мере с теми, которые являются int (то есть, как управление поиском выпадающего списка ролей) - как с этим справиться?
После долгих исследований я решил, что должен либосделать ModelState.Clear ();или более сложный способ справиться с этим.Есть ли лучший вариант?
Есть ли лучший способ добиться реализации поиска, описанной выше?Использую ли я стандартный \ лучший способ поиска в MVC?
На уровне ядра могу ли я заставить L2S понять, что это SQL-View, поэтому он доступен только для чтения и все поляможет быть NULL - так что Mr.DefaultModelValidator не выполняет такие нелогичные проверки?
Если 4. является жизнеспособным, могу ли я установить свойства всех полейв виде L2S, который будет доступен только для чтения, чтобы попробовать?
Спасибо за ваше драгоценное время и обзор.Просьба направлять меня, если я не на трассе.Я считаю, что это самый простой поисковый сценарий, и поэтому он должен быть легким.Просто нужно найти недостающие ссылки.