[英]Parsing in C# MVC asp.net Model
作業動手作業。
我有一個模型,可以在html頁面中顯示一個簡單的加法表單。 視圖模型被編寫為處理必需值(例如: [Required(ErrorMessage = "Missing a number, please enter decimals to add.")]
但是,在Domain
模型中,我需要TryParse
兩個輸入字段以驗證輸入的值是十進制值(正值還是負值)。 我試圖基於[Range],簡單的TryParse
, Parse
和我知道的其他所有方法進行過濾,但無法繞過異常以實際看到錯誤消息(例如上面的“缺少數字,請輸入小數加上”)。 我在這個網站和許多其他網站上進行了搜索,包括:
以及更多...任何幫助將不勝感激。
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();
}
}
您可以將viewmodel屬性設置為double嗎? 類型為Required和Range屬性。
您不需要檢查值是否為double,因為如果在控制器的操作中ModelState.IsValid為true,則它們始終是好的值。
[Required]
public double? Number {get; set;}
如果有必要在域模型中使用字符串值,則可以將輸入解析為字符串。 它將始終是雙精度值,因此您無需進行任何其他檢查。
如果您的作業沒有這樣的要求,那么建議更改存儲域模型值的類型。 將數字存儲為字符串並不常見且錯誤。
這有幫助嗎?
decimal number;
// Parse a floating-point value with a thousands separator.
var value = "1,643.57";
Decimal.TryParse(value, out number);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.