如何使用自定义输入将数据放入模型中

时间:2014-01-14 01:47:46

标签: asp.net asp.net-mvc razor

使用ASP.NET和MVC,我可以在文本框上使用自定义类将数据从View传递到Model,然后返回到我的控制器,如下所示:

@Html.TextBoxFor(m => m.first_name, new { @class = "form-control", tabindex = 1 })

以同样的方式,我想将自定义下拉选择器中的字符串返回到m.affiliation。我的自定义输入如下:

<select class="selectpicker" name="affiliation" id="affiliation" style="margin-top:1em;" data-width="100%">
    <option>Option 1</option>
    <option>Option 2</option>
    <option>Option 3</option>
</select>

如何使用Razor正确替换上面的代码块,以确保将此数据传递给我的模型的联属成员?

1 个答案:

答案 0 :(得分:1)

基本上,如果你想要的是将所选选项传递给你的模型,你没有做错任何事。唯一缺少的是期权价值。因此,假设您的模型具有affiliation属性,那么您可以在不使用帮助程序的情况下执行以下操作...

<select name="affiliation">
      <option value="Option 1">Option 1</option>
       <option value="Option 2">Option 2</option>
       <option value="Option 3">Option 3</option>
</select>

或者,您可以通过使用HTML帮助程序实现相同的目标......

@Html.DropDownListFor(m => m.affiliation, new List<SelectListItem>()
{
    new SelectListItem(){Text = "Option 1", Value = "Option 1"},
    new SelectListItem(){Text = "Option 2", Value = "Option 2"},
    new SelectListItem(){Text = "Option 3", Value = "Option 3"}
})

或者,如果您的模型已将联属列表列为List<string>IEnumarable<string> ...

@Html.DropDownListFor(m => m.affiliation, Model.affiliations_list.Select(x => new SelectListItem()
           {
               Value = x,
               Text = x
           }))