我有一个具有标量字符串属性"澄清"的实体。
澄清可以有值,"是"或"否"。
在我的视图模型中,我有以下属性。
public SelectList ClarifiedTypes { get; set; }
public string Clarified { get; set; }
在我的 Get 操作方法中,我做了以下操作:
model.ClarifiedTypes =
new SelectList(
new[] { new { Value = "1", Text = "Ja" }, new { Value = "2", Text = "Nej" }, },
"Value",
"Text");
在我看来,这就是我制作 DDL 的方式:
<div class="editor-field">
@Html.DropDownListFor(x => x.ClarifiedTypes, Model.ClarifiedTypes, "Välj alternativ")
</div>
现在我的问题在 Post 操作方法中。
在某种程度上,我需要用从 Model.ClarifiedType 中选择的值填充我的 Model.Clarified,然后执行以下 " 实体。澄清 = 模型。我不知道该怎么做。
我试过:
Model.Clarified = Model.ClarifiedTypes.selectedvalue.ToString();
Goalcard.Clarified = model.Clarified
但是我得到一个错误:
No parameterless constructor defined for this object.
我想要实现的是,用户应该能够在 DDL 中选择"是"或"否"值,然后该值应填充到我的实体属性中。
任何帮助不胜感激!
提前致谢
更新:
我收到此错误
o 为此对象定义的无参数构造函数。
说明:执行当前 Web 请求期间发生未经处理的异常。请查看堆栈跟踪,了解有关错误及其在代码中起源位置的详细信息。
异常详细信息:System.MissingMethodException:没有为此对象定义无参数构造函数。
源错误:
在执行当前 Web 请求期间生成了未经处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常来源和位置的信息。
你应该写
@Html.DropDownListFor(x => x.Clarified, Model.ClarifiedTypes, "Välj alternativ")
当您提交表单时,下拉列表中的选定值将进入Model.Clarified
为了使模型绑定能够工作,模型应具有默认构造函数,否则 mvc 将无法创建模型并绑定它。
如果无法还原模型上的默认构造函数,请创建自定义模型绑定器,或者更好地为其创建单独的视图模型。