设置视图中未显示的属性

时间:2012-11-13 13:26:28

标签: asp.net-mvc razor asp.net-mvc-4

在我的MVC项目中,我在“索引”页面上有三个链接,它们都启动相同的“创建”视图。我想在视图中传递一个标志,以便我确定使用哪个链接来启动视图。

我通过创建我的类的新实例,设置“mode”属性并将模型传递给视图来实现此目的。

例如,在“索引”视图中,我有:

@Html.ActionLink("My Link 1", "Create", New With {.id = 1}, Nothing)
@Html.ActionLink("My Link 2", "Create", New With {.id = 2}, Nothing)
@Html.ActionLink("My Link 3", "Create", New With {.id = 3}, Nothing)

我的控制器中的“创建”将是:

Function Create(id As Integer) As ActionResult
    Dim myObject As myObject = New myObject
    myObject.Mode = id

    Return View(myObject)
End Function

如果我的视图中有一个引用“Mode”属性的编辑器,这似乎才有用。如果我在我的视图中保留以下代码,一切正常,但如果删除它(因为我不想在表单上显示它),“模式”属性始终设置为0.。

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

如何设置“模式”而不在我的视图中显示它?

1 个答案:

答案 0 :(得分:1)

你可以尝试

@Html.HiddenFor(model.Mode)