C# Razor DropDownListFor-将选项值转换为双精度
我用的是MVC4 我在Razor视图中有以下元素: 在模型中,具有以下功能:C# Razor DropDownListFor-将选项值转换为双精度,c#,asp.net-mvc,asp.net-mvc-4,razor,C#,Asp.net Mvc,Asp.net Mvc 4,Razor,我用的是MVC4 我在Razor视图中有以下元素: 在模型中,具有以下功能: public struct RugItem { public float value { get; set; } public string name { get; set; } } public float Planning_Control_Resi1 { get; set; }
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元素中,如何将选项的值从字符串转换为双精度
谢谢,您的意思是您收到客户端验证错误,导致您无法提交表单吗?不,我没有收到任何验证错误,但表单操作不再调用。您没有显示表单:是否启用了客户端验证?显示更多视图,以便我们了解问题所在。如果1服务器区域性接受逗号作为十进制分隔符,2客户端验证被禁用,或者您为number重写了validator方法,那么您的代码可以正常工作。您在web.config`文件中指定了什么区域性?控制器中的代码可以是List listItems=new List;浮动值f=0.05f;对于int i=0;我
<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>