0

私は、ある時点でユーザーからのデータを必要とする MVC 3 アプリに取り組んでいます。その後、データは外部 DLL に送信されます (変更することはできません)。転送は、オブジェクトをビューのモデルにできるように、オブジェクトを関数に渡すことによって行われます。

問題は、モデルに属性を追加するアクセス権がなく、メタデータ クラスを追加する必要がないことです。

JQuery を使用してカスタム検証メカニズムを使用することにしたので、次のようなヘルパー関数を作成しました。

@helper TextBox(string name, object value = null)
    {
        var val = value ?? "";
    <tr>
        <td class="label">@name :
        </td>
        <td>
            <input type="text" name="@name" id="@name" value="@val" />
        </td>
    </tr>
}

@helper ValidationMessage(string name)
    {<span class="field-validation-valid" data-valmsg-replace="true" data-valmsg-for="@name"></span>}

@helper TextBoxRequired(string text, string fildName, object value = null, string message = "*")
    {
        var val = value ?? "";
    <tr>
        <td class="label">@text :</td>
        <td>
            <input type="text" name="@fildName" id="@fildName" value="@val" data-val="true" data-val-required="@message" />
            @ValidationMessage(fildName)</td>
    </tr>
}

jquery-1.8.2、jquery.validate、jquery.validate.unobtrusive を含めましたが、機能していません。

どんな助けでも大歓迎です。

編集: ウェブ構成設定:

  <appSettings>
    <add key="webpages:Version" value="1.0.0.0" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
  </appSettings>

また、JavaScript を有効にしてテストするために、Firefox、Chrome、および IE を使用しています。

4

1 に答える 1

2

ビューモデルを使用することをお勧めします。変更が許可されていないドメイン モデルをアセンブリに残します。次に、コントローラーにビューモデルをビューから/ビューに取得させます。これらのビュー モデルは、特定のビューの要件に対して具体的に定義するクラスです。ビュー モデルのプロパティは、必要な検証データの注釈で装飾できます。

Html.TextBoxFor次に、ビューでやなどの標準的で強く型付けされたヘルパーを使用Html.ValidationMessageForし、一部のヘルパーで車輪を再発明しないでください。

ちなみに、クライアント側の検証が機能するには、少なくとも次の 3 つの参照がこの順序で必要です。

  1. jquery
  2. jquery.validate
  3. jquery.validate.unobtrusive
于 2012-10-23T19:49:13.280 に答える