簡體   English   中英

在C#MVC asp.net模型中解析

[英]Parsing in C# MVC asp.net Model

作業動手作業。

我有一個模型,可以在html頁面中顯示一個簡單的加法表單。 視圖模型被編寫為處理必需值(例如: [Required(ErrorMessage = "Missing a number, please enter decimals to add.")]

但是,在Domain模型中,我需要TryParse兩個輸入字段以驗證輸入的值是十進制值(正值還是負值)。 我試圖基於[Range],簡單的TryParseParse和我知道的其他所有方法進行過濾,但無法繞過異常以實際看到錯誤消息(例如上面的“缺少數字,請輸入小數加上”)。 我在這個網站和許多其他網站上進行了搜索,包括:

以及更多...任何幫助將不勝感激。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM