Asp.net mvc 3 mvc3,从Razor视图的下拉列表中获取名称和值?

Asp.net mvc 3 mvc3,从Razor视图的下拉列表中获取名称和值?,asp.net-mvc-3,razor,Asp.net Mvc 3,Razor,我想从MVC3 Razor视图的下拉列表框中获取“名称”和“值”。请问最好的方法是什么 剃刀代码: <div class="editor-label"> @Html.LabelFor(model => model.Occupation) </div> <div class="editor-field"> @Html.DropDownListFor(model

我想从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>

@LabelFor(model=>model.occulation)
@DropDownListFor(model=>model.occulation.PK,model.GetLUV(“occulation”,model.occulation.PK))
结果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和occulation=“IT”,而不仅仅是PK=17。我将它持久化为XML

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


非常感谢。

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


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

用户总是可以保存HTML,修改它,并使用它将修改后的值发送回服务器。或者他们甚至不需要保存它,他们可以使用firebug或其他类似的工具。无论如何,服务器端查找是一种可能的解决方案。这就是为什么我建议在邮件背面的服务器端进行查找。