C# - 无法将类型“字符串”隐式转换为“int”(在下拉列表中设置值)

本文关键字:字符串 int 下拉列表 设置 类型 转换 | 更新日期: 2023-09-27 18:31:22

我正在尝试从代码隐藏中设置DropDownList的选定值。以下是 DropDownList 的 HTML:

<select name="ctl00$MainContent$area" id="MainContent_area">
    <option value="1">Test area 1</option>
    <option value="2">Test area 2</option>
</select>

我可以使用此代码将回发值存储到对象中来很好地更新数据库:

Area_Urn = int.Parse(area.SelectedValue)

但是,当我尝试使用以下代码将值设置回存储在数据库中的值时:

area.SelectedValue = c.Area_Urn

尽管c.Area_Urn是一个int,但我得到一个错误说:

无法将类型"字符串"隐式转换为"int"

我已经尝试了Int.Parse()ToString()(不确定为什么这会起作用,但我出于绝望而尝试过),但不幸的是,我无法弄清楚导致此问题的原因。

C# - 无法将类型“字符串”隐式转换为“int”(在下拉列表中设置值)

area.SelectedValue = c.Area_Urn.ToString()

那应该可以做到

您正在尝试将int值分配给string类型。所以你需要将 int 转换为字符串。所以试试这个

area.SelectedValue = c.Area_Urn.ToString()

area.SelectedValue = Convert.ToString(c.Area_Urn);

错误消息很奇怪,通常我会期望相反:

无法将类型"int"隐式转换为"字符串"

但是,由于SelectedValue是一个字符串,而c.Area_Urn是一个不起作用的int

area.SelectedValue = c.Area_Urn.ToString();  // now you assign a string to a string property