为什么我的部分视图不起作用?

时间:2012-06-06 15:37:22

标签: asp.net-mvc-3

这让我烦恼,我不知道发生了什么。我创建了一个部分视图来正确格式化数字。

文件_PermitNumber.cshtml位于/Views/Shared并包含:

@model System.Int32
@Html.Raw(Model.ToString("00-0000"))

在我的主页上,我这样做:

@Html.DisplayFor(model => model.BuildingPermit.PermitId, "_PermitNumber")

model.BuildingPermit.PermitId被定义为int

我的输出是120456而不是预期的12-0456。

发生了什么事?

1 个答案:

答案 0 :(得分:1)

为什么使用视图格式化输出?这似乎是您添加到视图中的不必要的复杂性。 IMO更好的位置将属于您的视图模型的属性:

public string FormattedPermitNumber
{
    get 
    {
         return PermitId.ToString("00-0000"));
    }
}

但是要回答你的问题,如果你删除了局部视图,你会看到你的号码仍然显示为120456.为了渲染局部视图,你需要按如下方式渲染局部视图:

@{ Html.RenderPartial("_PermitNumber",  Model.BuildingPermit.PermitId); }