2012-12-31 19 views
2

文本框的十進制值具有這種格式「0,0000」(,是小數點分隔符)。我只想要2位小數。我怎樣才能做到這一點 ?在MVC3中使用2digit十進制值的文本框顯示剃刀

我的模型有:

[DisplayFormat(DataFormatString = "{0:n2}", ApplyFormatInEditMode = true)] 
    public decimal DisplayOrder { get; set; } 

查看:

@Html.EditorFor(model => model.DisplayOrder) 

但它不工作提前

感謝

+0

您能更具體地瞭解發生了什麼問題。 – ChrisF

+0

我的文本框的值爲0.0000 ...但我需要0.00 – Priya

+0

因此,無論您在「DisplayFormat」規範中做了哪些更改,它仍然輸出「0.0000」? – ChrisF

回答

0

您可以使用正則表達式適合您的工作。

請嘗試如下。

[RegularExpression(@"^\d+.\d{0,2}$",ErrorMessage = "Price must can't have more than 2 decimal places")] 
public decimal DisplayOrder { get; set; } 

有關更多信息,請Regular Expression Library Here

我希望這會幫助你。

3

你可以參考這個話題有關的十進制格式的詳細信息在MVC3 Decimal Format in asp.net mvc3

而這個鏈接,類似的問題 Formatting decimal in asp.net mvc3

如果沒有上述的工作你可以試試你的電話號碼轉換爲字符串並將其傳遞給此函數。

/// <summary> 
    /// Formatting a given number to 0,00 
    /// </summary> 
    /// <param name="number"></param> 
    /// <returns></returns> 
    string NumberFormatting(string number) 
    { 
     if (number.Contains(',')) 
     { 
      string[] str = number.Split(','); 
      if (str[1].Length == 1) 
      { 
       number += "0"; 
      } 
     } 
     else 
     { 
      number += ",00"; 
     } 
     return DecreaseNumberDigits(number); 
    } 

    /// <summary> 
    /// To allow only two digits after the decimal mark 
    /// </summary> 
    /// <param name="number"></param> 
    /// <returns></returns> 
    string DecreaseNumberDigits(string number) 
    { 
     if (number.Contains(',')) 
     { 
      string[] str = number.Split(','); 
      if (str[1].Length > 2) 
       number = str[0] + "," + str[1].ToCharArray()[0].ToString() + str[1].ToCharArray()[1].ToString(); 
     } 
     return number; 
    }