为什么我的模型在帖子中丢失了下拉列表项目

本文关键字:下拉列表 项目 我的 模型 为什么 | 更新日期: 2023-09-27 18:00:54

我有一个简单的页面mvc和一个操作。Get方法在索引操作中我创建了一个属性模型的实例。categoria和I值包含3个项。问题是,如果我运行操作的post索引,正如你在下面看到的那样,我会出现一个错误,因为dropdownlist关联的model.cacategoria为null。我的问题是:我总是在每一篇文章中实例化模型。为了避免这个问题,分类顺序,今天我想知道,这是正确的吗?

以下是我将返回错误的代码:值不能为null。

控制器动作:

public ActionResult Index()
{
    var model = new Models.UploadVideoPage.UploadVideoPageModel();
    model.categoria = new List<Models.UploadVideoPage.ListCategorie>();
    model.categoria.Add(new ListCategorie { TitoloCategoria = "Volontariato", idCategoria = 1 });
    model.categoria.Add(new ListCategorie { TitoloCategoria = "Interno", idCategoria = 2 });
    model.categoria.Add(new ListCategorie { TitoloCategoria = "Sindacato", idCategoria = 3 });
    return View(model);
}
[HttpPost]
public ActionResult Index(Models.UploadVideoPage.UploadVideoPageModel model) 
{
    return View(model);
}

index.cshtml

 @Html.LabelFor(x => x.categoria)
            @Html.DropDownListFor(x => x.categoria.First().idCategoria, new SelectList(Model.categoria, "idCategoria", "TitoloCategoria"))

为什么我的模型在帖子中丢失了下拉列表项目

每次发布时都必须填充列表,除非你要为表单中的所有值设置隐藏字段

public ActionResult Index()
    {
        var model = new Models.UploadVideoPage.UploadVideoPageModel();
        PopulateDependencies(model);
        return View(model);
    }
    [HttpPost]
    public ActionResult Index(Models.UploadVideoPage.UploadVideoPageModel model)
    {
        PopulateDependencies(model);
        return View(model);
    }
    private void PopulateDependencies(Models.UploadVideoPage.UploadVideoPageModel model)
    {
        model.categoria = new List<Models.UploadVideoPage.ListCategorie>();
        model.categoria.Add(new ListCategorie { TitoloCategoria = "Volontariato", idCategoria = 1 });
        model.categoria.Add(new ListCategorie { TitoloCategoria = "Interno", idCategoria = 2 });
        model.categoria.Add(new ListCategorie { TitoloCategoria = "Sindacato", idCategoria = 3 });
    }