3

かみそりビューで必要に応じてテキスト ボックス フィールドを作成したいと考えています。[Required]フィールド名が動的に生成されるため、検証属性を使用できません。フィールドをjavascriptを使用するように設定するこの回答を確認しました。プロジェクトを実行する前にフィールド ID がわからないので、これを行う他の方法はありますか?data-val-requiredtrue

編集:

以下のコードを試してみましたが、フォームの送信時に検証メッセージが表示されないことを除いて、現在は機能しています。

@for (int i = 0; i < Model.Controls.Length; i++)
{
            @Html.TextBoxFor(x => x.Controls[i].Value, new { id = obj.VitalName,  data_val_required = "true" })
            @Html.ValidationMessageFor(x => x.Controls[i].Value, "Please fill in the details.")
        </td>
    </tr>
}
4

3 に答える 3

4

@required = trueの代わりに html 属性内で使用します。data_val_required = "true"

@Html.TextBoxFor(x => x.Controls[i].Value, new { id = obj.VitalName,  @required = true })
于 2015-03-10T10:16:47.970 に答える
1

フィールドが部分クラスで生成される場合は、次のリンクに示すように、フィールドのメタデータを使用してバディ クラスを実装できます。コードが ORM (Entity Framework など) によって生成される場合、生成されるクラスは部分的である必要があります。したがって、次のことを行う必要があります。

  1. メタデータを保持するクラスを作成し、適切な名前を付けます。
  2. 部分クラスを作成し (生成されたクラスと同じ名前空間を使用)、MetadataType 属性で装飾します。属性には、作成したばかりのクラスであるタイプが必要です。
  3. プロパティをメタデータ クラスに追加します。これらは、生成されたクラスのプロパティと正確に一致する必要がありますが、すべてのプロパティを複製する必要はなく、必要なものだけを複製する必要があります。したがって、プロパティ「姓」のみを必須にしたい場合は、追加するだけです

    [必須] public string Lastname { get;set; }

あなたのクラスに

于 2013-04-29T11:10:28.647 に答える