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 和 Occupation="IT",而不仅仅是 PK=17。我将它持久化为 XML。

我最初的想法是添加一个隐藏字段,然后使用某种形式的 javascript 在运行时填充它。我相信我需要额外的字段来确保 modelbiding 可以选择它来填充 XML。

提前谢谢了。

4

1 回答 1

1

恶意用户可以在其浏览器上编辑下拉列表的内容,从而允许他们在您的数据库中存储他们喜欢的任何职业值。这是不可取的。

当表单被回发时,您可能希望在服务器端进行查找。查找服务将获取一个 id(在本例中为 17)并返回一个字符串('IT')。那么用户就不能恶意玩弄这个值了。

于 2013-03-01T12:23:07.013 回答