2

私はモデルを持っています:

 public class Attribute
 {
    public int Id { get; set; }
    public string Key { get; set; }
    public string Value{ get; set; }
 }

ビューが表示されるとしましょう。キーと値@model IEnumerable<MyCustomer.ViewModels.Attribute>のを作成したいのEditorForですが、ポストバックコントロールに入れずに、ポストバック後もIDを保持したいだけです。どうすればこれを達成できますか?私はそれを隠しに入れることができることを知っていますが、隠しを変更することができ、それが最も安全なことかどうかはわかりません。ビューに属性のnew[]を渡しているので、IDを事前設定する必要があります

4

2 に答える 2

2

次の投稿は、非表示フィールドの値の安全なハッシュを作成することにより、問題へのアプローチを提供します。

この投稿は、必要なもののように聞こえるSecuredValueHtmlHelperのソースコードを含む記事にもリンクしています。

隠しフィールドの変更を防ぐ

于 2012-12-12T22:10:40.777 に答える
0

どうすればこれを達成できますか?

HTMLの動作に奇跡はありません。HTMLフォームに何を入力しても、ポストバックに戻ります。何を省略しても、あなたは失います。

したがって、いくつかの可能性があります。

  • 後で取得できるように、値をASP.NETセッション変数に格納します。
  • ポストバックで送信されたKeyプロパティとValueプロパティを使用して、データストアとIDをクエリします(これは、Key / Valueの組み合わせが一意であり、データストアに対応するIdプロパティがある場合にのみ機能します)。
  • Idプロパティの値を、ポストバックで取得できる暗号化されたCookieに保存します。FormsAuthentication.Encrypt/Decryptこのためのメソッドを使用できます。
于 2012-12-12T22:00:39.673 に答える