[MVC] Значения из запроса имеют выше приоритет перед значени
От: cadet354 Россия
Дата: 06.09.10 14:00
Оценка:
Доброго времени,
столкнулся с такой проблемой,
в контроле модели присваиваю значение, отдаю во вью, а там хелперы при посторения контрола берут значения из request.
схематично это выглядит так

// 1. контроллер 
// GET:/Выдать поиск по параметрам/
        public ActionResult Search(ObjectsSearchForm searchForm)
        {

            if (!ModelState.IsValid)
            {
             //обработка валидации
            }
            // бизнес логика, здесь Type равен например 1
            //....
            // присваиваем типу 0 (не задан)
            searchForm.Type=0;
            return View("Found", searchForm)
            }
// 2. view
<%=Html.HiddenFor(m=>m.Type) %>

в дебаге я вижу что в Model.Type стоит 0, но в html который генериируется стоит 1 (что было в первоначальном запросе),
почему так?
Можно конечно переписать без хелперов (
<input type="hidden" value="<%=Model.Type %>" name="Type" />
) если другого выхода нет.
... << RSDN@Home 1.2.0 alpha 4 rev. 1270>>
Re: [MVC] Значения из запроса имеют выше приоритет перед зна
От: mogadanez Чехия  
Дата: 06.09.10 15:00
Оценка:
Здравствуйте, cadet354, Вы писали:

только не из реквеста а из ModelState

C>в дебаге я вижу что в Model.Type стоит 0, но в html который генериируется стоит 1 (что было в первоначальном запросе),

C>почему так?

чтобы не про#№% значения которые были неверные савсем
хотя нафига они берут их для данных которые Valid — не понятно.

C>Можно конечно переписать без хелперов (
C><input type="hidden" value="<%=Model.Type %>" name="Type" />
C>
) если другого выхода нет.


лично мое мнение — не использовать. они слишком сложные.
а вообще, как вариант — перед отдачей удалить из ModelState все то что Valid. оно там не нужно один фиг
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.