2016-12-27 5 views
-1

助けてください、どうやってvoidメソッド内でサーバー側のテキストボックスフィールドの検証を整理する方法はありますか?以下のコードのパーツ:voidメソッドのモデルを持たないMVCサーバー側フィールドの検証

メインvoidメソッド:

// Add new row into SQL DB 
public void AddNewRow(MyClass obj) 
{ 
    bool fieldsValid = CheckFields(obj); 

    if (fieldsValid) 
    { ... // It's Ok, save new row 
} 

// Check fields values method 
public bool CheckOTKFields(MyClass obj) 
{ 
    bool result = true; 

    if (obj.ObjectProperty % 2 == 0 || !(obj.ObjectProperty is int)) 
    { 
     @ViewBag.Otl1_DividingError = "Error description"; 
     result = false; // Flag to false 
    } 
    ... // Other properties 
    return (result); 
} 

私は@ViewBagに変数を試してみたが、ページがさわやか\ロードされたときに多くの困難があります。あなたはもっと良い方法を知っているかもしれませんか?または、クライアント側(js \ jQ)の検証のみを使用する必要がありますか?あなたはPOSTアクションからの応答を返す提供

+0

「多くの困難」はありますか?あなたのコードはどのように意図したとおりに動作しませんか? – David

+0

@David、私は、ビューとコントローラコードの 'NULL'例外とViewBag変数の宣言によってちょっと混乱しています。 – SPNick

+0

"私はちょっと混乱しています"実際のエラーが発生している場合は、エラーメッセージを読んで、エラーをスローするコードを調べるとよいでしょう。 – David

答えて

1

は、あなたが設定できます

ModelState.AddModelError("", "Error Description"); 

を最初のパラメータは、モデルの特定のプロパティを指しますが、空の文字列が動作します。 POSTからの応答が検証の要約結果に表示されます。

難しいのは、以前に行った操作を取り消すことができないことです。最初にすべての項目で検証が行われていることを確認してから、実行したい操作があればそれを続けてください。

関連する問題