1

我有一个具有标量字符串属性“已澄清”的实体。

澄清可以有值,“是”或“否”。

在我的 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 中选择是或否值,然后该值应该填充到我的实体属性中。

任何帮助表示赞赏!

提前致谢

更新:

我收到此错误

o 为此对象定义的无参数构造函数。

说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.MissingMethodException:没有为此对象定义无参数构造函数。

源错误:

在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。

4

1 回答 1

0

你应该写

@Html.DropDownListFor(x => x.Clarified, Model.ClarifiedTypes, "Välj alternativ")

并且从下拉列表中选择的值将在Model.Clarified您提交表单时进入

为了使模型绑定能够工作,您的模型应该具有默认构造函数,否则 mvc 将无法创建模型并绑定它。

如果您无法在模型上恢复默认构造函数,请创建自定义模型绑定器或更好,为其创建单独的视图模型。

于 2012-05-28T07:20:31.223 回答