1

私はモデルクラス Person を持っています

public class Person
{
    public string name { get; set; }
    public string area { get; set; }
}

ここで、インデックス ビューで、ユーザーから値の名前プロパティを取得し、領域 ="foo" を取得して、ビューからコントローラーに値を渡したいと考えています。以下のようにユーザーから値を取得する方法を知っています。

@using (Html.BeginForm())
{
  @Html.Label("Name")
  @Html.TextBoxFor(m=>m.name)

  <input type="submit" value="Name" /> 
}

今、ビューに area="foo" が必要です。問題をグーグルで検索しようとしましたが、解決策が見つかりませんでした。これは一般的な問題です。コントローラーで ,set value area="foo" のように答えないでください。今後質問を改善できるように、コメントせずに反対票を投じないでください。ありがとう

4

1 に答える 1

1

「 area 」という名前の非表示フィールドをフォームに追加し、値を好きなように設定します。フォームが投稿されると、隠しフィールドの値もアクション メソッドに投稿されます。

@using (Html.BeginForm())
{
  @Html.Label("Name")
  @Html.TextBoxFor(m=>m.name)
  <input type="hidden" name="area" value="foo" />
  <input type="submit" value="Name" /> 
}

これで、 HttpPostアクション メソッドでこれを取得できます。

[HttpPost]
public ActionResult Create(Person model)
{
  // check for model.name and model.area.
  // TO DO : Save and redirect
}

firebug などのツールを使用して、ブラウザーの非表示フィールドの値をいつでも更新できることを覚えておく必要があります。機密情報 (ショッピング ポータルのアイテムの価格) の場合は、クライアントからこのように読み取らないでください。サーバーから読み取ります。

于 2013-04-13T14:38:57.030 に答える