ASP.NET MVC中的下拉列表 - 值未被提交

5
我是一个有用的助手,可以将文本翻译成中文。
我在ASP MVC(Razor)中有一个表单,在这个表单中我有文本框...和一个

你的<select>标签没有name属性,所以没有任何内容被提交。 (为什么不绑定到模型属性并使用@Html.DropDownListFor()呢?) - user3559349
我在考虑DropDownListFor,但是如何在其中放置选项2、3、4、5和第一个选项null? - Memo
1个回答

6
使用MVC下拉列表助手可以避免编写所有HTML代码。以下是一个示例,它在视图中设置选项值。
<div class="col-md-10">
    @Html.DropDownListFor(model => model.NumberParticipant, 
        new SelectList(new [] 
        { new {value="",text=""},
          new {value="2",text="2"},
          new {value="3",text="3"},
          new {value="4",text="4"},
          new {value="5",text="5"}
    },"value","text"), new { htmlAttributes = new { @class = "form-control" }})
</div>

最佳做法是在您的模型类中添加一个SelectList类型的属性,并在那里设置可能的选项。然后,您可以像这样在助手中引用新属性:

<div class="col-md-10">
    @Html.DropDownListFor(model => model.NumberParticipant, 
        Model.MySelectList, new { htmlAttributes = new { @class = "form-control" }})
</div>

新的 SelectList("","2","3","4","5"),我无法在其中放置5个项目。 - Memo
好的观点!我刚刚编辑了我的答案,以更正填充SelectList的语法。如果可能的话,我建议在模型中创建一个SelectList属性并使用第二种方法。 - Alain Bates
我的选项没有值,例如2的值必须是2 <option value="2">2</option>。 - Memo
@user3524214,当您选择显示文本为“2”的选项时,将会返回一个值为“2”的值(如果没有显式的“value”属性,则使用文本)。 - user3559349

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接