我正在使用MVC4。
我在Razor View
中有以下元素:
@Html.DropDownListFor(m => m.Planning_Control_Resi1, Model.Planning_Control_Resi1List)
并在Model
中使用以下函数:
public struct RugItem
{
public float value { get; set; }
public string name { get; set; }
}
public float Planning_Control_Resi1 { get; set; }
public IEnumerable<SelectListItem> Planning_Control_Resi1List
{
get
{
List<RugItem> listItems = new List<RugItem>();
float valuef = 0.05f;
for (int i = 0; i <= 20; i++)
{
listItems.Add(new RugItem
{
name = valuef + "",
value = valuef
});
valuef += 0.05f;
}
return new SelectList(listItems, "value", "name");
}
}
完整表格是:
@using (Html.BeginForm("RunRug", "Impressions", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.LabelFor(m => m.Planning_Control_Resi1, "Planning_Control_Resi1")
@Html.DropDownListFor(m => m.Planning_Control_Resi1, Model.Planning_Control_Resi1List)
<br />
<input type="hidden" name="cookie_token" id="cookie_token" />
<input type="submit" value="Run Rug" />
}
上一代码生成的HTML是:
<option value="0,05">0,05</option>
<option value="0,1">0,1</option>
<option value="0,15">0,15</option>
<option value="0,2">0,2</option>
我对小数点符号的区域设置为,
,我无法更改它。问题是该值不会发送回控制器,因为它无法转换字符串格式(“0,05”到双精度)。
如何在DropDownListFor元素中将选项中的值从string转换为double?
谢谢,