2

モデルファーストのEntity Framework接続を使用して、RazorでASP.NET MVC4に取り組んでいます。ユーザー名、パスワード、およびユーザータイプを要求する、ゼロから作成したログインフォームがあります。残念ながら、フォームはフィールドが空白の場合でも投稿できるため、例外がスローされます。

Modelsフォルダーのクラスを使用するのではなく、モデルを介してデータベースに直接マッピングしているため、DataAnnotationsを適用する方法がありません。null 値の送信を避けるためにフォームの検証を強制する別の方法はありますか?

4

2 に答える 2

1

私の意見では、あなたが一般的に行っていることは間違っており、クライアント側の検証のみに頼ることは、クライアント側に依存するため、良いアプローチではありません.MVCでは、モデルが重要すぎて、なぜそれらを使用しないのですか? ちなみに、あなたのケースにはViewModelを使用する必要があると思います

于 2013-09-06T07:38:52.067 に答える
1

属性を使用できないため、[Required]おそらくクライアント側の検証を使用する必要があります。使用している場合HTML5は、フィールドを としてマークできます。required次のような出力を行うカスタム ヘルパーを作成できます。

<input id="username" type="text" required />

ここに示されているように(ヘルパーメソッドなし):

http://jsfiddle.net/ck4dL/

JavaScriptvia を手動で使用して、ユーザー入力を検証することもできます。

<input id="username" type="text" />
<button id="submitx" onclick="validate()">Click</button>

function validate() {
    var username = document.getElementById("username");
    alert(username.value);
    if (username.value === "") {
        alert('Please fill in the username field');
    }
}

または、次のような事前構築済みライブラリを使用しますjQuery validate

追加のメモとして、サーバー レベルでもこれらのフィールドを確認することをお勧めします。ユーザーが JavaScript を無効にしているか、意図的に不正な情報を送信している可能性があります。

于 2013-09-06T07:32:55.057 に答える