2014-11-02 54 views

回答

0

是的。是可能的。 我有你的答案:遠程驗證。 如果您使用[必需]屬性,並且不填充該字段,則ModelState將始終以無效方式進行響應。所以一個好的選擇是使用遠程驗證屬性。

我讓你這個例子:

型號:

[Required] 
[RegularExpression(@"^[0-9]*$", ErrorMessage = "Only Numbers")] 
[Remote("CheckIfIsDisable", "Home", AdditionalFields = "TXTstatus", ErrorMessage = "You must to fill this field")] 
[DisplayName("Register Number")] 
public String bookId { get; set; } 

查看:

@Html.TextBoxFor(model => model.bookId) 
@Html.ValidationMessageFor(model => model.bookId) 
@Html.Hidden("TXTstatus", "enable") 

<input type="button" onClick = "return disableTXT()" text="Toggle Disable/Enable bookId field"/> 

你必須把一個JavaScript函數來切換數值:

<script> 
function disableTXT() { 
if ($("#TXTstatus").val() === "enable") { 
    $("#TXTstatus").val("disable"); 
    } 
else { 
    $("#TXTstatus").val("enable"); 
    } 
} 
</script> 

控制器:

public ActionResult CheckIfIsDisable(string bookId, string TXTstatus) 
     { 

      if (TXTstatus == "enable") 
      { 
     // This show the error message of validation 
       return Json(true, JsonRequestBehavior.AllowGet); 
      } 
      else 
      { 
     // This will ignore the validation 
       return Json(false, JsonRequestBehavior.AllowGet); 
      } 
     } 

僅僅是一個例子。隨意改變並適應您的需求。隨時提問。