7

次のようなビューモデルがあるとします。

public class User 
{
    public int Id { get; set; }

    [Required(ErrorMessage="Username is required")]
    public string Username { get; set; }

    [Range(0, 255)]
    public int Owner { get; set; }
}

ページは、ModelState.IsValid かどうかを確認するコントローラーに送信されますが、合格しません。当然、所有者が必要です。何故ですか?割り当てられていない int のデフォルト値は 0 だと思っていました。アプリをデバッグして、コントローラーに送信されたオブジェクトを調べると、値は実際には 0 です。

ユーザーに 0 を強制的に入力させたくない場合、最善の方法は何ですか? クラスの Owner プロパティに [DefaultValue(0)] 属性を追加しようとしましたが、違いはないようです。

これがそのような初心者または些細な概念に慣れる種類の問題であっても、いくつかのガイダンスは素晴らしいでしょう.

よろしく、

4

2 に答える 2

3

Ownerintnull 許容値にしようとしましたか?

[Range(0, 255)]
public int? Owner { get; set; }
于 2012-06-23T13:44:07.403 に答える
0

modelStateをチェックする前に、nullかどうかをチェックできます。

if (viewModel.Owner == null)
{
  viewModel.Owner = 0;
}

if(ModelState.IsValid)
...
于 2012-09-24T16:28:57.583 に答える