Asp.net mvc 3 为什么';我的部分观点不起作用吗?

Asp.net mvc 3 为什么';我的部分观点不起作用吗?,asp.net-mvc-3,Asp.net Mvc 3,这让我心烦,我不知道发生了什么。我创建了一个局部视图以正确设置数字格式 文件\u PermitNumber.cshtml位于/Views/Shared中,包含: @model System.Int32 @Html.Raw(Model.ToString("00-0000")) 在我的主页上,我做: @Html.DisplayFor(model => model.BuildingPermit.PermitId, "_PermitNumber") model.BuildingPermit.P

这让我心烦,我不知道发生了什么。我创建了一个局部视图以正确设置数字格式

文件
\u 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


发生了什么事?

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

public string FormattedPermitNumber
{
    get 
    {
         return PermitId.ToString("00-0000"));
    }
}
但为了回答您的问题,如果您删除了部分视图,您将看到您的号码仍然显示为120456。为了渲染局部视图,需要按如下方式渲染局部视图:

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

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

public string FormattedPermitNumber
{
    get 
    {
         return PermitId.ToString("00-0000"));
    }
}
但为了回答您的问题,如果您删除了部分视图,您将看到您的号码仍然显示为120456。为了渲染局部视图,需要按如下方式渲染局部视图:

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

啊!我应该在模型中这样做。。。谢谢啊!我应该在模型中这样做。。。谢谢