2010-11-29 58 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

相关问题