0

我一直在努力研究几个非常长的视图,这些视图通过“ViewModel”中介附加到我的模型上。我的模型在一个单独的项目中。

一切正常,但我想隐藏视图中的某些字段。我大部分时间都用过,像这样:

        <td id="Left">@Html.LabelFor(x=>x.Id)</td>
        <td id="Right">@Html.TextBoxFor(model => model.Id)</td>

到目前为止的所有字段(每个视图中有数百个。

对我来说,必须进入这些并将其中许多更改为 HiddenFor 是没有意义的,因为我必须在很多地方这样做。

我想知道是否可以选择将其放在视图模型的属性上,例如:

    [Display(Name = "ID:")]
    [HiddenInput(DisplayValue = false)]
    public int Id { get; set; }

为了一次隐藏标签和输入文本框,所以只有我标记的字段才会显示。我在想我应该能够设置一个属性来做到这一点,所以我哪里出错了。

提前感谢您的帮助。

4

1 回答 1

0

不,就您而言,没有现成的解决方案。

ScaffoldColumnAttribute一起控制输入和标签的生成,但只有当您使用动态生成的视图时才能看到它的作用,使用EditorForModel. 而且这种技术完全去除了 html,这与生成隐藏输入是不一样的。

您可以尝试使用 jQuery 来管理它,并且属性以选择器结尾

<script>
$(function () {
    $('input[name$="Id"]').closest('tr').hide();
});
</script>
于 2012-05-21T12:01:38.627 回答