【发布时间】:2017-02-08 06:18:31
【问题描述】:
家庭作业动手操作。
我有一个模型可以在 html 页面中生成一个简单的添加表单。视图模型用于处理必需值(例如:[Required(ErrorMessage = "Missing a number, please enter decimals to add.")]
但是,在Domain 模型中,我需要TryParse 两个输入字段来验证输入的值是十进制值(正数或负数)。我试图根据 [Range]、一个简单的TryParse、Parse 以及我知道该怎么做但无法绕过异常以实际看到错误消息的所有其他事情进行过滤(如上面的“缺少一个数字, 请输入小数添加")。我在这个网站和许多其他网站上搜索过,包括:
- int.TryParse = null if not numeric?
- Matching numbers with regular expressions — only digits and commas
- how parse asp.net mvc razor view (cshtml) like html parser in c#
- "No overload for method 'TryParse' takes one argument" error when using double.TryParse
以及更多...任何帮助将不胜感激。
public class MyAbacusDomainModel
{
public MyAbacusDomainModel(string number1, string number2)
{
Number1 = number1;
Number2 = number2;
Sum = CalculateSum(number1, Number2);
}
public string Sum { get; set; }
public string Number1 { get; set; }
public string Number2 { get; set; }
// need to parse the two number values here to get the boolean results
private string CalculateSum(string number1, string number2)
{
double number1double = Convert.ToDouble(number1);
double number2double = Convert.ToDouble(number2);
double sum = (number1double + number2double);
return sum.ToString();
}
}
【问题讨论】:
-
您能解释一下为什么要在字符串中存储数字吗?您为什么不简单地将您的 Number1/2 声明为双/十进制?
-
也许使用
contracts? -
作业的代码 sn-p 是字符串(只有数字),讲师没有给出任何说明,所以我将其转换为双精度,但仍试图通过异常。
标签: c# asp.net asp.net-mvc asp.net-mvc-5