[英]ASP.NET MVC Only One of the RadioButton Input is Passed to Controller
我是NET MVC的新手,我尝试开发一个应用程序,让用户回答几个问题,
我有以下与我的问题有关的模型 :
和一个ViewModel
public class QuestionChoiceViewModel
{
public Question Question { get; set; }
public IEnumerable<Choice> Choices { get; set; }
}
在我看来,我想将所有问题及其响应选项显示为单选按钮,因此我在“选择/索引”视图中有以下几行。
@model IEnumerable<WebApplication.Models.QuestionChoiceViewModel>
@using (Html.BeginForm("Index", "Choices", FormMethod.Post))
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
@foreach (var q in Model){
@:<b>Question:</b>
@Html.DisplayFor(modelItem => q.Question.questionText)
<form class="form-group">
@foreach(var c in q.Choices){
<input type="radio" name="@c.choiceText" value="@c.choiceID" />
@c.choiceText
<br />
}
</form>
<br />
}
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="button" value="Back" class="btn btn-default" id="btnBack" />
<input type="submit" name="btnSubmit" value="Submit" class="btn btn-default" />
</div>
</div>
</div>
}
我显示并可以从多个问题中选择一个而没有问题。
对于代码的最终示例,请参见我的控制器仅将FormCollection类型用作参数
public ActionResult Index(FormCollection form)
问题:当我调试并查看形式-besides Token等时-是仅第一个单选按钮组的值。 可以说我有10个问题,但我在控制器中通过的内容是第一个问题中选择的内容。 我做错了什么?
另外,非常欢迎收到关于我的风格的任何提示,谢谢!
乍看之下,似乎有两件事不对:
<form class="form-group">
不必是表单,嵌套表单可能会引起问题。 另外,名称应该是一些简短的标识符,而不是针对用户的文本,因为我认为c.choiceText是:
ID和NAME令牌必须以字母([A-Za-z])开头,后跟任意数量的字母,数字([0-9]),连字符(“-”),下划线(“ _”) ,冒号(“:”)和句点(“。”)。 https://www.w3.org/TR/html401/types.html#type-name
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.