c# - DropDownList 验证 - 问题

标签 c# asp.net-mvc html.dropdownlistfor

我在使用 DropDownList 验证的 ASP.NET MVC 中遇到问题。 我有两个 Action “创建”。它们的定义如下:

public ActionResult Create()
    {
        var categoriasDownloads = from catDown in modelo.tbCategoriasDownloads
                                  orderby catDown.TituloCategoriaDownload ascending
                                  select catDown;

        ViewData["CategoriasDownloads"] = new SelectList(categoriasDownloads, "IDCategoriaDownloads", "TituloCategoriaDownload");

        var formatosArquivos = from formatosDown in modelo.tbFormatosArquivos
                               orderby formatosDown.NomeFormatoSigla
                               select formatosDown;

        ViewData["FormatosArquivos"] = new SelectList(formatosArquivos, "IDFormatoArquivo", "NomeFormatoSigla");

        return View();
    }

第二个 Action Create 是:

[HttpPost]
    public ActionResult Create(tbDownloads _novoDownload)
    {
        TryUpdateModel(modelo);
        TryUpdateModel(modelo.tbDownloads);

        if (ModelState.IsValid)
        {
            modelo.AddTotbDownloads(_novoDownload);
            modelo.SaveChanges();

            return RedirectToAction("Sucesso", "Mensagens");
        }

        return View(_novoDownload);
    }

问题是:当尝试验证时,验证没有发生。我正在使用数据注释进行验证,但我没有成功。

我该怎么办?

谢谢

最佳答案

验证发生,但您验证的是错误的对象。

错误:

TryUpdateModel(modelo);
TryUpdateModel(modelo.tbDownloads);

正确:

TryUpdateModel(_novoDownload);

关于c# - DropDownList 验证 - 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4052317/

相关文章:

c# - 如何使用 C# 通过 Selenium 获取元素列表

c# - iTextSharp 文本字段将字体设置为粗体

c# - 使用 C# 或 Linq 对 MongoDB 和 SQL 使用相同的语法

c# - 找不到蓝牙设备的 ID

angularjs - $q.all 比顺序 .then() 慢?

c# - EF6 找不到 LocalDBConnectionFactory

asp.net-mvc-3 - 将字符串数组绑定(bind)到 MVC Razor 中的 DropDownList

asp.net-mvc - 为什么 <form> 被赋予 NoValidate 属性?

c# - MVC 4 Dropdownlist通过按钮传递值?

asp.net-mvc - 将 dropdownListfor 分配给 value=0 的 "All"选项