我在asp.net mvc上做调查系统4.如何在Controller中获取所有单选按钮数据?
$(document).ready(function(){
var AnswerCounter = 0;
$("#answer-add").click(function(){
var answertext = $("#answer-text").val();
var answerContent = $('<p>', {
class:'external',
});
var inputAnswer = $('<input>',{
id:'answer-'+AnswerCounter,
name:'rb',
class:'answer-radio'
}).attr("type","radio").appendTo(answerContent);
var labelAnswer = $('<label>').attr('for','answer-'+AnswerCounter).text(answertext).appendTo(answerContent);
$('#answers').append(answerContent);
AnswerCounter++;
});
});
您可以在jquery创建的示例按钮中看到。所以我可以使用模型绑定。
感谢。
答案 0 :(得分:2)
通常为MVC3 radiobutton生成的HTML看起来像这样
<input name="FeedingTime" id="FeedingTime" type="radio" value="Morning"/> <input name="FeedingTime" id="FeedingTime" type="radio" value="Afternoon" checked="checked"/>
当单选按钮组发布时,它将绑定到与名称匹配的变量。
[HttpPost]
public ActionResult Index (string FeedingTime){
//feeding time here is "Afternoon"
}
所以要正确绑定代码,
在脚本中设置输入'value'属性的值,并
在ActionResult中有一个与html输入元素中的'name'属性匹配的变量
答案 1 :(得分:1)
编辑:这个答案不再与被问到的问题相关。
从单选按钮获取值,你可以绑定到它们,就像你的字符串变量一样;假设你在视图中
@Html.LabelFor(m => m.FeedingTime,"Morning")
@Html.RadioButtonFor(m => m.FeedingTime, "Morning")<br />
@Html.LabelFor(m => m.FeedingTime,"Afternoon")
@Html.RadioButtonFor(m => m.FeedingTime, "Afternoon")<br />
@Html.LabelFor(m => m.FeedingTime,"Night")
@Html.RadioButtonFor(m => m.FeedingTime, "Night")
当你回发时,你会在一个字符串变量中捕获它 public ActionResult(...,string FeedingTime,...){
}
通常此变量嵌入在视图模型中,例如
public class AnimalViewModel
{
public string Name { get; set; }
public string Type { get; set; }
public string FavoriteColor { get; set; }
public string FeedingTime { get; set; }
}
以便在发布时
[HttpPost]
public ActionResult Index(AnimalViewModel viewModel){
...
}
它自动将viewmodel绑定到数据。
更直接地回答您的问题。我不认为这是一种检测页面上所有单选按钮输入的方法,您只能检测从单选按钮发布的结果。没有迹象表明发布的字符串曾经是无线电按钮的答案。因此,如果您想知道页面上所有单选按钮的值,您只需要检查发布的字符串的值。