6

メモを収集するデータ入力フィールドがあります。ノートデータ要素は、ノートごとに必要です。これが私のモデルです:

public interface INoteDataEntryViewModel : IMobilePageDataContract
{
    int CourseId { get; set; }

    [Required(ErrorMessage = @"Note is required")]
    String Note { get; set; }

    [DisplayName(@"Note Date")]
    DateTime NoteDate { get; set; }
}

NoteプロパティにRequired属性があることがわかります。

Razorを使用してデータ入力フォーム要素を表示しています。

<div data-role="fieldcontain">
    @Html.LabelFor(m => m.Note)
    @Html.TextAreaFor(m => m.Note)
    @Html.ValidationMessageFor(m => m.Note)
</div>

「@Html.TextAreaFor」を使用すると、必須フィールドの検証が行われず、フォームを送信できます。ただし、「@ Html.TextBoxFor」に変更すると、必須フィールドの検証が行われ、フォームを送信できません。TextAreaForの検証が失敗する理由に関するアイデアはありますか?私は控えめなajaxを使用しており、jQueryMobileです。

ご協力いただきありがとうございます。

4

1 に答える 1

9

クライアント側の検証は、Html.TextAreaFor() ヘルパーでは機能しません。Codeplex で報告された関連する問題を次に示します。

機能させるには、「メモ」プロパティを[DataType(DataType.MultilineText)]属性で装飾する必要があります。ビューでは、ヘルパー メソッドHtml.EditorFor()の代わりにヘルパーを使用しHtml.TextAreaFor()ます。

更新されたモデル:

public interface INoteDataEntryViewModel : IMobilePageDataContract
{
    int CourseId { get; set; }

    [Required(ErrorMessage = @"Note is required")]
    [DataType(DataType.MultilineText)]
    String Note { get; set; }

    [DisplayName(@"Note Date")]       
    DateTime NoteDate { get; set; }
}

意見:

<div data-role="fieldcontain">
    @Html.LabelFor(m => m.Note)
    @Html.EditorFor(m => m.Note)
    @Html.ValidationMessageFor(m => m.Note)
</div>
于 2012-04-18T19:11:35.713 に答える