0

MVC3 Razor ビューのドロップダウン リスト ボックスから「名前」と「値」を取得したいと考えています。最善のアプローチは何ですか?

かみそりコード:

        <div class="editor-label">
             @Html.LabelFor(model => model.Occupation)
        </div>
        <div class="editor-field">
            @Html.DropDownListFor(model => model.Occupation.PK, Model.GetLUV("Occupation",Model.Occupation.PK))
         </div>

結果の HTML:

        <div class="editor-label">
             <label for="Occupation">Occupation</label>
        </div>
        <div class="editor-field">

            <select id="Occupation_PK" name="Occupation.PK"><option value="17">IT</option>
              <option value="18">Accountant</option>
              <option selected="selected" value="19">Solicitor</option>
            </select>
            <span class="field-validation-valid" data-valmsg-for="Occupation" data-valmsg- replace="true"></span>
        </div>

IE PK=17 だけでなく、PK=17 と Occupation="IT" を保存したい。XMLに永続化しています。

私の最初の考えは、隠しフィールドを追加してから、何らかの形式の JavaScript を使用して実行時に入力することです。modelbiding がそれを取得して XML に入力できるようにするには、追加のフィールドが必要だと思います。

事前に感謝します。

4

1 に答える 1

1

ドロップダウンのコンテンツは、悪意のあるユーザーがブラウザーで編集できるため、データベースに好きな職業の値を保存できます。これは望ましくありません。

フォームがポストバックされたときに、サーバー側でルックアップを行いたいと思うでしょう。検索サービスは ID (この場合は 17) を受け取り、文字列 ('IT') を返します。その後、ユーザーは値を悪意を持っていじることができなくなります。

于 2013-03-01T12:23:07.013 に答える