Razor DropDownListFor - 将选项值转换为double

时间:2015-11-01 23:50:08

标签: c# asp.net-mvc asp.net-mvc-4 razor

我正在使用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?

谢谢,

0 个答案:

没有答案