C# “错误”;没有为此对象定义无参数构造函数。”;使用ViewModel中的SelectList

C# “错误”;没有为此对象定义无参数构造函数。”;使用ViewModel中的SelectList,c#,asp.net-mvc,C#,Asp.net Mvc,在我的viewmodel中,我创建了两个SelectList属性,其中城市名称来自外部数据库 视图模型 namespace Treinreizen.Models.ViewModels { public class ReizenViewModel { public SelectList VanStad { get; set; } public SelectList NaarStad { get; set; } } } 在我的控制器中,我使

在我的viewmodel中,我创建了两个SelectList属性,其中城市名称来自外部数据库

视图模型

namespace Treinreizen.Models.ViewModels
{
    public class ReizenViewModel
    {
        public SelectList VanStad { get; set; }

        public SelectList NaarStad { get; set; }
    }
}
在我的控制器中,我使用一个GET方法“registie”,用户可以在其中选择城市,并使用一个POST方法发布这些城市。问题是我得到了错误

“没有为此对象定义无参数构造函数。”

当我试图发布我的表格时。在堆栈跟踪中,它表示:

“[MissingMethodException:没有为此对象定义无参数构造函数。]”和“[MissingMethodException:没有为此对象定义无参数构造函数。对象类型'System.Web.Mvc.SelectList'。”

控制器

        // GET: Hotels/Registratie
        public ActionResult Registratie()
        {
            stedenServices = new StedenServices();
            ReizenViewModel registratieviewmodel = new ReizenViewModel();
            registratieviewmodel.VanStad = new SelectList(stedenServices.All(), "StadID", "Stad");
            registratieviewmodel.NaarStad = new SelectList(stedenServices.All(), "StadID", "Stad");
            return View(registratieviewmodel);
        }

        // POST: Hotels/Registratie
        [HttpPost]
        public ActionResult Registratie(ReizenViewModel registratie)
        {
            if (ModelState.IsValid)
            {
                return RedirectToAction("Index");
            }
            return View(registratie);
        }
看法


@LabelFor(model=>model.VanStad,htmlAttributes:new{@class=“controllabel col-md-2”})
@DropDownListFor(m=>m.VanStad,Model.VanStad,“--Selecteer Stad-->”)
@Html.ValidationMessageFor(model=>model.VanStad,“,new{@class=“text danger”})
@LabelFor(model=>model.NaarStad,htmlAttributes:new{@class=“controllabel col-md-2”})
@DropDownListFor(m=>m.NaarStad,Model.NaarStad,“--Selecteer Stad-->”)
@Html.ValidationMessageFor(model=>model.NaarStad,“,new{@class=“text danger”})

只需向ReizenViewModel添加一个无参数构造函数,它什么都不做:

public ReizenViewModel(){}

可能重复这不是MVVM,而是MVC,因此是“asp.NETMVC”。ReizenViewModel不是视图模型,而是模型。你混淆了两种不同的模式。
public ReizenViewModel(){}