2

私の MVC プロジェクトでは、「インデックス」ページに 3 つのリンクがあり、それらはすべて同じ「作成」ビューを起動します。ビューを起動するために使用されたリンクを特定できるフラグをビューに渡したいと思います。

クラスの新しいインスタンスを作成し、「モード」プロパティを設定し、モデルをビューに渡すことでこれを実現しました。

たとえば、「インデックス」ビューには次のものがあります。

@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

これは、ビューに「モード」プロパティを参照するエディターがある場合にのみ機能するようです。ビューに次のコードを残すと、すべて正常に動作しますが、それを削除すると (フォームに表示したくないため)、「モード」プロパティは常に 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>

ビューに表示せずに「モード」を設定するにはどうすればよいですか?

4

1 に答える 1

1

あなたは試すことができます

@Html.HiddenFor(model.Mode)
于 2012-11-13T13:33:04.347 に答える