簡體   English   中英

如何在Razor視圖中正確發布一個十進制值?

[英]How do I properly post a decimal value in a Razor View?

我有一個POCO模型,如下所示:

public class Tool
{
    [Key]
    public int ID { get; set; }

    public int QtyOnHand { get; set; }


    [DisplayFormat(DataFormatString = "{0:#.####}")]
    public decimal SizeUS { get; set; }
    public string Location { get; set; }
    public int OriginalID { get; set; }


    [NotMapped]
    public bool Selected { get; set; }

    [NotMapped]
    public bool Selectable { get; set; }

}

在我的剃刀視圖中,我有:

@Html.EditorFor(model => model.SizeUS)                    
@Html.ValidationMessageFor(model => model.SizeUS)

我遇到的問題是,將SizeUS值發布到控制器后會四舍五入到1/100。 我希望能夠發布最多1 / 1000th或1 / 10000th的值。 我該怎么做?

出於貨幣原因,定義decimal編輯器的方法如下:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<script runat="server">
    private object FormattedValue {
        get {
            if (ViewData.TemplateInfo.FormattedModelValue == ViewData.ModelMetadata.Model) {
                return String.Format(System.Globalization.CultureInfo.CurrentCulture,
                                     "{0:0.00}",
                                     ViewData.ModelMetadata.Model);
            }
            return ViewData.TemplateInfo.FormattedModelValue;
        }
    }
</script>

默認情況下,此模板顯示精度為2位數字的十進制值,因為大多數用戶將使用十進制值表示貨幣。 請注意,只有在您未應用格式字符串的情況下,它才會這樣做(這是if語句中檢查的目的)。 <%= Html.Encode(FormattedValue)%>

參考: http : //bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-3-default-templates.html

您可以改用double ,創建自己的編輯器模板,也可以簡單地編寫HTML input控件。

暫無
暫無

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

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