2010-11-29 83 views
1

我遇到問題,我不知道哪個結果是正確的。asp.net mvc2驗證在兩臺服務器上的行爲不同

我正在根據從哪裏運行應用程序 - 本地(調試模式)/開發(在單獨的服務器上)獲取兩種不同的方案。

我有兩個.aspx頁面上的一個視圖模型ConsultationViewModel(我想記住兩個表單之間的數據)。

形式1 兩個對象(字符串) - 酮[必需]

形式2 兩個對象(字符串) - 雙[必需]

這裏是我獲得不同的方案:

•本地主機:表單1 - 表單2 =無驗證錯誤 •開發:表單1-表單2 =驗證錯誤

表單1

public string Rate { get; set; } 

[Required(ErrorMessage = "You must enter your comments")] 
public string Comments { get; set; } 

表2

[Required(ErrorMessage = "Please select a option")] 
public string WhatAreYou { get; set; } 

[Required(ErrorMessage = "Please select a option")] 
public string EthnicOrigin { get; set; } 

爲什麼開發服務器上它需要驗證WhatAreYou/EthinicOrigin在這些實際上從來沒有在表2中使用?

[HttpGet] 
    public ActionResult Index() 
    { 
     ConsultationHolderViewModel consultationViewModel = new ConsultationViewModel(); 
     return View(consultationViewModel); 
    } 

    [HttpPost] 
    public ActionResult Index(ConsultationViewModel consultationViewModel) 
    { 
     if (!ModelState.IsValid) 
     { 
      return View(consultationViewModel); 
     } 

     return View("Equalities", consultationViewModel); 
    } 

    [HttpPost] 
    public ActionResult Equalities(ConsultationViewModel consultationViewModel) 
    { 
     if (!ModelState.IsValid) 
     { 
      return View(consultationViewModel); 
     } 

     switch (consultationViewModel.Button) 
     { 
      case "Back": 
       return View("Index", consultationViewModel); 
      case "Continue": 
       return View("Receipt", consultationViewModel); 
     } 

     return View("Equalities", consultationViewModel); 
    } 

在此先感謝您的幫助,

克萊爾

回答

0

我打賭它是與默認MVC2模型綁定。它驗證所有模型屬性。

所以,如果你的模型有他們,即使你不發佈他們,甚至不需要他們 - 你仍然會得到驗證錯誤。

+0

我手動填充ModelState.IsValid之前的必填字段,它仍然顯示錯誤消息:consultationViewModel.WhatAreYou =「A」;/consultationViewModel.EthnicOrigin =「A」;爲什麼會這樣做?因爲這兩個字符串都包含數據 – ClareBear 2010-11-29 11:55:47

相關問題