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 に切り替えました (これは本当に気に入っています!)。かなり洗練された検証ツールがいくつかあることは知っていますが、ビュー自体の中でそれらを説明する必要があるようです。

ビュー自体に直接コード化されていない限りレンダリングされないため、コントローラーのビューデータを介して HTML ヘルパーを渡すことはできません。

また、アクセシビリティの問題によりjavascriptを使用できないため、純粋なasp.netソリューションを探しています。formscollection オブジェクトを介して問題なくドロップダウンのすべての値にアクセスできますが、そこから少し行き詰まります。

私が見逃しているものはありますか?

アドバイスやヘルプをお寄せいただきありがとうございます。

4

1 に答える 1

0

Javascript を使用できない場合、検証を行う唯一の方法はサーバー側です。

組み込みの ModelState オブジェクトを使用して、エラーを操作できます。この Scott Guthrie ブログ投稿 " ASP.NET MVC 2: モデルの検証" ですべてを説明しています 。

于 2011-01-11T18:38:36.843 に答える