2017-06-29 14 views
0

無効なシリアルをポストすると、 ""(空文字列)に設定され、ModelState.isValidがfalseであると予想されますが、trueを返します。.net mvcデータ注釈モデルの状態が常に真に返る

 private string _tcno { get; set; } 

     [Required(ErrorMessage = "Enter serial")] 
     [StringLength(11, MinimumLength = 11, ErrorMessage="Invalid Serial Number")] 
     [Column(TypeName = "nchar")] 
     public string TCNO 
     { 
      get { return _tcno ?? ""; } 
      set { 
       value = value ?? ""; 
       _tcno = value.IsValidTC() ? value : ""; 
      } 
     } 

ここでModelState.isValidがtrueの理由で、長さ11の検証が信頼されますか?

+0

MinimumLength属性を設定して空の値をポストしているので、model.state = trueとなっています。その値をfalseにするには、minimumlength属性を削除します。 –

+0

コメントありがとうございますが、正しくありません – TyForHelpDude

答えて

0

ウォーキングコピーが使用しています私の妥当性確認の方法を設定し、無効なシリアル番号の場合は ' - 'を設定します。

0

うまくいけば、これが役に立ちます。私は、次のことをやったと私は12345678901のための「有効」を持って、私は1234

ビューの「無効」だ:

@model Testy20161006.Controllers.AttributeViewModel 
<!DOCTYPE html> 
<html> 
<head> 
    <meta name="viewport" content="width=device-width" /> 
    <title>IndexValid10</title> 
</head> 
<body> 
    <div> 
     @using (Html.BeginForm()) 
     { 
      @Html.TextBoxFor(r => r.TCNO); 
      <input type="submit" value="submit" /> 
     } 
    </div> 
</body> 
</html> 

コントローラ/ビューモデル:以下

public class AttributeViewModel 
{ 
    private string _tcno { get; set; } 

    [Required(ErrorMessage = "Enter serial")] 
    [StringLength(11, MinimumLength = 11, ErrorMessage = "Invalid Serial Number")] 
    [Column(TypeName = "nchar")] 
    public string TCNO 
    { 
     get { return _tcno ?? ""; } 
     set 
     { 
      value = value ?? ""; 
      //modified this line 
      _tcno = value; 
     } 
    } 
} 

public class HomeController : Controller 
{ 
    [HttpPost] 
    public ActionResult IndexValid10(AttributeViewModel attributeViewModel) 
    { 
     //set a breakpoint here 
     if (ModelState.IsValid) 
     { 
      var isValid = true; 
     } 
     return View(); 
    } 
+0

これは私のisValidTC()メソッドを使用していないので役に立たないです。 – TyForHelpDude

+0

@TyForHelpDude isValidTC()メソッドを投稿してください。 – kblau

関連する問題