データベースに「Nullでない」プロパティを持つ整数型のフィールドがあります。ASP.NET MVCビューでInteger型フィールドのnull値をチェックする方法は?
ビューを作成するとき&フィールドを空白のままにした場合、0と見なされるので、誰かが値0を挿入するとエラーと見なされるので、それを0と見なします。
もう1つの問題は、「ASP.NET MVC 1.0」@ Scott Guブログに記載されているようにモデルエラーを使用していることです。そして、(LINQ-To-SQLによって作成された)オブジェクトの部分クラスの値をチェックしています。すなわち
public partial class Person
{
public bool IsValid
{
get { return (GetRuleViolations().Count() == 0); }
}
public IEnumerable<RuleViolation> GetRuleViolations()
{
if (String.IsNullOrEmpty(Name))
yield return new RuleViolation("Name is Required", "Name");
if (Age == 0)
yield return new RuleViolation("Age is Required", "Age");
yield break;
}
partial void OnValidate(ChangeAction action)
{
if (!IsValid)
throw new ApplicationException("Rule violations prevent saving");
}
}
範囲にも問題があります。
私がsmallintすなわちshortをc#で宣言すると、データベースに似ていますが、その範囲を超えると "値が調整されました"というエラーが表示されます。
最後に、ASP.NET MVCで検証するための最良の方法がありますか?
として保存されます。しかし、我々は、任意の値を入力してくださいいけない場合、それ0と見なして-1でチェックすることはできません。 – Vikas
私はここであなたの言うことを得ることはありません。デフォルト値はデフォルト値です(値が設定されていない場合は常にこの値を持つ必要があります)。 null可能な型を意味する場合、何も設定されていなければ、値はnullです。 –