为什么[HttpPost]只选择'EditorFor'?

时间:2012-03-15 11:11:39

标签: c# asp.net-mvc razor

我正在使用MVC Razor,当我尝试编辑某些内容时,我将其传递给ViewModel,其中包含所有必要的信息,我已对此进行了测试。

这是我的观点:

<div class="editor-label">
        @Html.LabelFor(model => model.CollectionId)
    </div>
    <div class="editor-field">
        @Html.DisplayFor(model => model.CollectionId)
    </div>

    <div class="editor-label">
        @Html.LabelFor(model => model.BrandName)
    </div>
    <div class="editor-field">
        @Html.DisplayFor(model => model.BrandName)
    </div>

    <div class="editor-label">
        @Html.LabelFor(model => model.Season)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.Season)
        @Html.ValidationMessageFor(model => model.Season)
    </div>

正如您所看到的,我只使用@Html.EditorFor来了解他们可以更改的信息,因为这是我想要改变的全部内容。但我认为有必要向他们展示其他信息,以便他们确切地知道他们正在编辑什么。

我的问题是,如何才能实现相当于传递信息的@Html.EditorFor,而不实际允许他们编辑信息?

1 个答案:

答案 0 :(得分:4)

你必须使用Html.HiddenFor将它们的值传递回控制器。

e.g。

<div class="editor-field">
    @Html.DisplayFor(model => model.CollectionId)
    @Html.HiddenFor(model => model.CollectionId)
</div>