获取动态单选按钮值

时间:2013-06-15 22:05:43

标签: asp.net-mvc c#-4.0 asp.net-mvc-4 razor

我在asp.net mvc上做调查系统4.如何在Controller中获取所有单选按钮数据?

Example

$(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创建的示例按钮中看到。所以我可以使用模型绑定。

感谢。

2 个答案:

答案 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绑定到数据。

更直接地回答您的问题。我不认为这是一种检测页面上所有单选按钮输入的方法,您只能检测从单选按钮发布的结果。没有迹象表明发布的字符串曾经是无线电按钮的答案。因此,如果您想知道页面上所有单选按钮的值,您只需要检查发布的字符串的值。