Razor - @ Html.DisplayFor(model => model.Decimal)不渲染

时间:2013-11-14 03:24:32

标签: c# asp.net-mvc razor

我遇到的问题是,当model属性为小数时,@ 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

请注意,双显示

1 个答案:

答案 0 :(得分:0)

我刚从头开始创建一个新的MVC 4项目进行测试,无法复制您的问题。鉴于此,你的本地配置必须有一些不太正确的东西(不匹配的程序集与服务器上安装的程序集,名为decimal的显示模板,名为decimal的类,如果没有更多信息,它真的不清楚)

使用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>