Проверка asp.net MVC 1 с использованием динамически созданных элементов управления - PullRequest
1 голос
/ 11 августа 2010

Используя ASP.Net MVC1 и я динамически создаю html в модели, которая затем помещается в представление и отображается во время выполнения.

Мой взгляд - это одна страница, которая выглядит следующим образом:

<%@ Page Language="VB"  Inherits="System.Web.Mvc.ViewPage" %>
<%=(ViewData("Content"))%>

Этот динамически создаваемый контент в основном представляет собой выпадающие списки в формате

<form method=post action="/questions/nextBatch">
    <div id="text">What is your preferred drink?</div>
    <select>
      <option selected value="noSelect"> - Please make a selection -  </option>
      <option value="a" >Milk</option>
      <option value="b" >Coffee</option>
      <option value="c" >Tea</option>
    </select>
</form>

Можно ли выполнить проверку в раскрывающихся списках, чтобы убедиться, что выбрано значение? Если какой-либо из выпадающих списков, которые по-прежнему имеют значение по умолчанию (текст «пожалуйста, сделайте выбор»), затем страница снова отображается с измененным цветом шрифта поля вопроса или выпадающего списка на красный?

Я из мира Webforms и переключился на MVC (что мне действительно нравится!), И я знаю, что есть довольно приятные инструменты проверки, но вам, кажется, приходится учитывать их в самом представлении ,

Я не могу передать помощнику HTML через viewdata контроллера, поскольку он не рендерится, если он не был закодирован непосредственно в само представление.

Кроме того, я ищу чистое решение asp.net, поскольку я не могу использовать javascript из-за проблем с доступностью. Я могу получить доступ ко всем значениям раскрывающихся списков без каких-либо проблем через объект Formcollection, но оттуда я немного застрял.

Есть ли что-то, чего мне не хватает?

Заранее большое спасибо за любой совет или помощь!

1 Ответ

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

Если вы не можете использовать Javascript, единственный способ выполнить проверку на стороне сервера.

Вы можете использовать встроенный объект ModelState для обработки ошибки. В этом блоге Скотта Гатри " ASP.NET MVC 2: проверка модели " объясняется все это

...