簡體   English   中英

如何在Razor TextBoxFor中呈現的EF Code First中將小數格式化為百分比?

[英]How do I format decimal as Percentage in EF Code First rendered in Razor TextBoxFor?

我有一個財產:

    public decimal myProperty { get; set; }

這是我的渲染:

    @Html.TextBoxFor(m => m.myProperty , new { @class = "percentage" })

如何計算百分比?

您可以使用[DisplayFormat]屬性裝飾視圖模型屬性,以允許您指定格式:

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

在你看來:

@Html.EditorFor(x => x.myProperty)

但是要小心,因為DisplayFormat屬性(顧名思義)僅用於顯示目的。 默認模型聯編程序不使用它。 因此,當用戶通過發布表單提交此值時,您將獲得驗證錯誤,因為例如0.45%不是有效的十進制值。 我在this post說明了如何定義自定義模型綁定器,它將在綁定值時使用DisplayFormat屬性定義的格式。

以下是我最后使用帖子中的一條建議的方法。

public class JobCand
{
    [Key]
    [HiddenInput(DisplayValue = false)]
    public int JC_ID { get; set; }

    public int Job_ID { get; set; }

    public int Candidate_ID { get; set; }

    [DataType(DataType.MultilineText)]
    [StringLength(250)]
    public string JC_Note { get; set; }

    [DisplayFormat(ApplyFormatInEditMode = false, DataFormatString = "{0:P0}")]
    [RegularExpression(@"[0-9]+(\.[0-9][0-9]?)?$", ErrorMessage = "Invalid rate")]
    public decimal? JC_Skill_Match_Pct { get; set; }

}

我會告訴你一件事與ASP.NET控件和C#.NET代碼相比,格式化這種方式要容易得多。 我喜歡MVC建議在實體類中執行此操作的方式。 我為克拉克縣評估員辦公室構建的應用程序需要使用$和%格式進行大量會計顯示。 為了顯示,編輯和提取以及更新數據庫而來回轉換的工作給我帶來了很大的痛苦。 更不用說我混合了更新面板。

@Html.TextBoxFor(m => (m.myProperty/10000).ToString("P"))

請參閱MSDN

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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