0

非常沮丧!!!!

在初始显示上,货币显示正常,但是当我编辑值时,它没有格式化。我设置了一个新项目来说明。

    public class TestViewModel
{
    [DisplayName("Text Box For")]
    public decimal Cost1 { get; set; }

    [DisplayName("Editor For")]
    [DisplayFormat(DataFormatString = "{0:C}", ApplyFormatInEditMode = true)]
    public decimal Cost2 { get; set; }
}

@model EditorForTest.Models.TestViewModel
<br/>
@Html.LabelFor(m => m.Cost1)
@Html.TextBoxFor(m => m.Cost1, new { Value = String.Format("{0:C}", Model.Cost1) })
<br/>
@Html.LabelFor(m => m.Cost2)
@Html.EditorFor(m => m.Cost2)
<br/>

    public ActionResult Test()
    {
        return View(CurrentTest);
    }

    private static TestViewModel _currentTest;

    private static TestViewModel CurrentTest
    {
        get { return _currentTest ?? (_currentTest = GetNewTest()); }
        set { _currentTest = value; }
    }

    public static TestViewModel GetNewTest()
    {
        TestViewModel testViewModel = new TestViewModel();

        testViewModel.Cost1 = 1234;
        testViewModel.Cost2 = 1234;

        return testViewModel;
    }

打开后看起来没问题:

在此处输入图像描述

但是当你编辑它时,格式会丢失。

在此处输入图像描述

我究竟做错了什么?????

4

1 回答 1

0

您的方案适用于干净的 MVC4 项目。您必须有其他原因导致此问题,请检查您是否没有十进制 EditorTemplate,因为这将覆盖默认的 DisplayFormat。

于 2013-05-16T15:33:23.170 回答