0

我遇到了一个问题,当模型属性为小数时,@Html.DisplayFor 不会在浏览器中呈现值。请注意,双精度类型确实显示正确。另一个奇怪的事情是,一旦我将代码提升到生产服务器,就会显示...所以这只是我本地笔记本电脑上的一个问题。

这是我正在测试的模型:

    public decimal Test { get { return (decimal)105.35;} }
    public decimal? TestNullable { get { return (decimal)105.35; } }
    public double TestDbl { get { return 105.35; } }
    public double? TestNullableDbl { get { return 105.35; } }

这是标记:

@Html.DisplayFor(model => model.Test)
<br />
@Html.DisplayFor(model => model.TestNullable)
<br />
@Html.DisplayFor(model => model.TestDbl)
<br />
@Html.DisplayFor(model => model.TestNullableDbl)

这是在 html 中呈现的内容:

            <br>

            <br>
            105.35
            <br>
            105.35

请注意,双显示

4

1 回答 1

0

我刚刚从头开始创建了一个新的 MVC 4 项目进行测试,但无法复制您的问题。鉴于此,您的本地配置肯定有一些不正确的地方(不匹配的程序集与服务器上安装的内容,名为十进制的显示模板,名为十进制的类,没有更多信息真的不清楚)

使用 VS 2013、.NET 4.5、Windows 8.1 64 位

查看模型

public class TestViewModel
{
    public decimal Test { get { return (decimal)105.35; } }
    public decimal? TestNullable { get { return (decimal)105.35; } }
    public double TestDbl { get { return 105.35; } }
    public double? TestNullableDbl { get { return 105.35; } }
}

控制器

public class HomeController : Controller
{
    //
    // GET: /Home/

        public ActionResult Index()
        {
            return View(new TestViewModel());
        }

    }

看法

@model MvcApplication1.Models.TestViewModel

@{
    ViewBag.Title = "Home";
}

<h2>Home</h2>
@Html.DisplayFor(model => model.Test)
<br />
@Html.DisplayFor(model => model.TestNullable)
<br />
@Html.DisplayFor(model => model.TestDbl)
<br />
@Html.DisplayFor(model => model.TestNullableDbl)

生成的 HTML

<body>


<h2>Home</h2>
105.35
<br />
105.35
<br />
105.35
<br />
105.35

    <script src="/Scripts/jquery-1.8.2.js"></script>


</body>
于 2013-11-14T03:45:58.820 回答