asp.net mvc2验证在两台服务器上的表现不同

时间:2010-11-29 10:31:45

标签: asp.net asp.net-mvc validation viewmodel

我遇到了问题,我不知道哪个结果是正确的。

我根据运行应用程序的位置获取两种不同的方案 - 本地(调试模式)/开发(在单独的服务器上)。

我有一个视图模型ConsultationViewModel超过两个.aspx页面(我想记住两种形式之间的数据)。

表格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);
    }

提前感谢您的帮助,

克莱尔

1 个答案:

答案 0 :(得分:0)

我的赌注是它与默认的mvc2模型绑定有关。它验证所有模型属性。

因此,如果你的模型有它们,即使你没有发布它们甚至不需要它们 - 你仍然会得到验证错误。