如何在 MVC3 中使用选定的 DDL 值填充我的字符串属性

本文关键字:DDL 填充 我的 属性 字符串 MVC3 | 更新日期: 2023-09-27 18:35:27


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

澄清可以有值,"是"或"否"。

在我的视图模型中,我有以下属性。

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 请求期间生成了未经处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常来源和位置的信息。

如何在 MVC3 中使用选定的 DDL 值填充我的字符串属性

你应该写

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

提交表单时,下拉列表中的选定值将进入Model.Clarified

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

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