我正在尝试将使用javascript创建的模型(因为它是由用户手动创建)发送到MVC控制器。
模型非常复杂,一个类使用double?
类型作为变量。它适用于int
个数字,但当我使用"0.5"
时,该值设置为null。
双值失败的原因是什么?我该怎么办?
一些代码:
var serie = {};
serie.Name = $(elem).children("#name").val();
serie.UnitMeasurement = $(elem).children("#unitMeasurement").val();
serie.ThresholdRed = $(elem).children("#redThreshold").val();
serie.ThresholdYellow = $(elem).children("#yellowThreshold").val();
public class Serie
{
public string Name { get; set; }
public string UnitMeasurement { get; set; }
public double? ThresholdRed { get; set; }
public double? ThresholdYellow { get; set; }
}
答案 0 :(得分:-1)
您可以像使用
一样使用您的课程public class Serie
{
public string Name { get; set; }
public string UnitMeasurement { get; set; }
public string ThresholdRed { get; set; }
public string ThresholdYellow { get; set; }
}
然后在使用这些varriable时,您可以将它们转换为 -
double? d = Convert.ToDouble(ThresholdRed);
或者你可以使用double.TryParse
喜欢 -
double d;
bool result = double.TryParse(str, out dbl); // `result` will be the status of tried Parsing (true or false)
为了避免与文化混淆,请在发送之前对参数进行编码,如< - p>
var serie = {};
serie.Name = escape($(elem).children("#name").val());
serie.UnitMeasurement = escape($(elem).children("#unitMeasurement").val());
serie.ThresholdRed = escape($(elem).children("#redThreshold").val());
serie.ThresholdYellow = escape($(elem).children("#yellowThreshold").val());
在服务器上使用它们时,首先解码它们 -
double? d = Convert.ToDouble(HttpUtility.HtmlDecode(ThresholdRed));