1

使用 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(我真的很喜欢!),我知道那里有一些非常漂亮的验证工具,但您似乎必须在视图本身中考虑它们。

我无法通过控制器的 viewdata 传递 HTML 帮助程序,因为它不会呈现,除非它已直接编码到视图本身中。

此外,我正在寻找一个纯 asp.net 解决方案,因为由于可访问性问题,我无法使用 javascript。我可以通过 formscollection 对象毫无问题地访问下拉列表的所有值,但是从那里我有点卡住了。

有什么我想念的吗?

非常感谢您的任何建议或帮助!

4

1 回答 1

0

如果您不能使用 Javascript,则进行验证的唯一方法是服务器端。

您可以使用内置的 ModelState 对象来处理错误。这篇 Scott Guthrie 博客文章“ ASP.NET MVC 2:模型验证”解释了一切

于 2011-01-11T18:38:36.843 回答