2016-10-07 7 views
0

ビューモデルをJSONに変換するために組み込みのASP.Net return JSON()関数を使用しています。このビューモデルでプロパティの1つがdecimalです。このプロパティが4.50または4.00のような値で埋められると、View ModelのJSONバージョンが末尾の0(s)を削除していることに気付きました。ビューでJavaScriptのデータを読み込むときにこの動作を停止すると、すべて0になります。ASP.Net JSONが小数点以下のプロパティの末尾に0を表示しないようにする

のViewModel:

public class TimeCardEntryVM 
{ 
    public int ID { get; set; } 
    public string ProjectCode { get; set; } 
    public string ProjectDescription { get; set; } 
    public string TaskCode { get; set; } 
    public string TaskDescription { get; set; } 
    public bool IsDurationTime { get; set; } 
    public decimal HoursWorked { get; set; } 
    public DateTime StartTime { get; set; } 
    public DateTime EndTime { get; set; } 
    public string WorkDescription { get; set; } 
} 

JSONを返すASP.Netコード:

{ 
    var timeEntryData = db.TimeCards 
          .Include(timeCard => timeCard.Project) 
          .Include(timeCard => timeCard.Task) 
          .Where(timeCard => timeCard.ID == timeCardID) 
          .Select(timeCard => new TimeCardEntryVM() 
          { 
           ID = timeCard.ID, 
           EndTime = timeCard.EndDateTime, 
           ProjectCode = timeCard.Project.Code, 
           ProjectDescription = timeCard.Project.Description, 
           StartTime = timeCard.StartDateTime, 
           TaskCode = timeCard.Task.Code, 
           TaskDescription = timeCard.Task.Description, 
           HoursWorked = (decimal)timeCard.TimeWorked, 
           IsDurationTime = timeCard.IsDurationTime, 
           WorkDescription = timeCard.WorkDescription 
          }).First(); 

    return Json(timeEntryData, JsonRequestBehavior.AllowGet); 
} 

私は値をチェックするために使用していたJavaScriptコード:

$.ajax({ 
    type: "POST", 
    url: "/TimeCard/TimeCardEntry", 
    data: { timeCardID: args.row["uid"] }, 
    success: function (data) 
    { 
     alert(data["HoursWorked"]); 
    } 
}); 

答えて

3

なぜだけではなく、形式JavaScriptの結果は.toFixed()

です10
$.ajax({ 
    type: "POST", 
    url: "/TimeCard/TimeCardEntry", 
    data: { timeCardID: args.row["uid"] }, 
    success: function (data) 
    { 
     var formattedHours = data.HoursWorked.toFixed(2); 
    } 
}); 
+1

私の検索ではそれを超えて実行されませんでしたが、多くの結果が得られませんでした。それはあなたに感謝しました。 – Matthew

関連する問題