我有一个标量字符串属性为“Clarified”的实体。
澄清可以有值,“是”或“否”。
在我的ViewModel中,我有以下属性。
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.ClarifiedTypes中选择的值填充我的Model.Clarified,然后执行“entity.Clarified = Model.Clarified”。我不知道该怎么做。
我试过了:
Model.Clarified = Model.ClarifiedTypes.selectedvalue.ToString();
Goalcard.Clarified = model.Clarified
但是我收到了一个错误:
No parameterless constructor defined for this object.
我想要实现的是用户应该能够在DDL中选择“是”或“否”值,然后该值应该填充到我的实体属性中。
感谢任何帮助!
提前致谢
更新
我收到了这个错误
为此对象定义的无参数构造函数。
描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.MissingMethodException:没有为此对象定义无参数构造函数。
来源错误:
在执行当前Web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。
答案 0 :(得分:0)
你应该写
@Html.DropDownListFor(x => x.Clarified, Model.ClarifiedTypes, "Välj alternativ")
当您提交表单时,下拉列表中的选定值将显示在Model.Clarified
要使模型绑定能够工作,您的模型应该具有默认构造函数,否则mvc将无法创建模型并将其绑定。
如果无法在模型上恢复默认构造函数,请创建自定义模型绑定器或更好,为其创建单独的视图模型。