Asp.net mvc 3 MVC3 Razor@if中是否存在错误

Asp.net mvc 3 MVC3 Razor@if中是否存在错误,asp.net-mvc-3,syntax,razor,Asp.net Mvc 3,Syntax,Razor,我有几个表单字段可能需要显示,也可能不需要显示,这取决于加载表单的实体。所以在我的模型中,我有相应的布尔属性 表单中的每个字段都有相应的“标签”(不是html标签)。下面的代码隐藏html输入元素,但不隐藏标签 <!-- DBA: _________________ --> <tr> <td> @if (Model.DisplayDBAField) { @Html.Raw("DBA:")

我有几个表单字段可能需要显示,也可能不需要显示,这取决于加载表单的实体。所以在我的模型中,我有相应的布尔属性

表单中的每个字段都有相应的“标签”(不是html标签)。下面的代码隐藏html输入元素,但不隐藏标签

<!-- DBA: _________________ -->
<tr>
    <td>
        @if (Model.DisplayDBAField)
        {
            @Html.Raw("DBA:")
        }
    </td>
    <td>
        @Html.TextBox("DoingBusinessAs", Model.DoingBusinessAs, new { style = string.Format("visibility: {0};", Model.DisplayDBAField ? "visible" : "hidden") })
    </td>
</tr>
上面的代码工作正常,我一步一步地检查了它,字段设置/取消设置正确。 这是模型:

public class ProfileModel
{
    public EntityProfile Entity { get; set; }
    public bool DisplayDBAField { get; set; }
    public bool DisplayVendorIDField { get; set; }
    public bool DisplayContactNameFields { get; set; }
    public bool DisplayDistributionMethodField { get; set; }
    public bool DisplayCardPurposeField { get; set; }

    public ProfileModel()
    {
        DisplayDBAField = true;
        DisplayVendorIDField = true;
        DisplayContactNameFields = true;
        DisplayDistributionMethodField = true;
        DisplayCardPurposeField = true;
    }
}
因此,默认构造函数将标志设置为true,控制器在适当时修改标志。我还尝试了以下视图:

    <td>
        @if (!Model.DisplayDBAField)
        {
            @Html.Raw("DBA:")
        }
    </td>

@如果(!Model.DisplayDBAField)
{
@Html.Raw(“DBA:”)
}

并发现无论Model.DisplayDBAField中的值是多少,无论它是真是假,“DBA:”都不会被渲染!因此,无论我使用@if(Model.displaybafield){}还是@if(!Model.displaybafield){},代码本身似乎在运行时被完全忽略。

如果您编写
@Model.displaybafield
,您会看到什么?您能否从控制器发布代码,特别是写入
displaybafield
的部分,只是一个注释。将
@if
放在
周围,这样您只需要检查一次,这不是更合乎逻辑吗?您是否在
模型.displaydbField
属性上放置了一个断点,并查看它包含的内容?PaulRivera-将光标放在razor代码上,然后点击F9。代码中必须有一个实际的游标。
public class ProfileModel
{
    public EntityProfile Entity { get; set; }
    public bool DisplayDBAField { get; set; }
    public bool DisplayVendorIDField { get; set; }
    public bool DisplayContactNameFields { get; set; }
    public bool DisplayDistributionMethodField { get; set; }
    public bool DisplayCardPurposeField { get; set; }

    public ProfileModel()
    {
        DisplayDBAField = true;
        DisplayVendorIDField = true;
        DisplayContactNameFields = true;
        DisplayDistributionMethodField = true;
        DisplayCardPurposeField = true;
    }
}
    <td>
        @if (!Model.DisplayDBAField)
        {
            @Html.Raw("DBA:")
        }
    </td>