Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 根据数据库值选择RadioButton_C#_Asp.net Mvc_Razor - Fatal编程技术网

C# 根据数据库值选择RadioButton

C# 根据数据库值选择RadioButton,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,正在开发MVC5应用程序 我有一张有一串列的桌子。一列包含项目的单选按钮列表。由于这是一个“编辑”视图,我需要正确地预先填充所选单选按钮。(即选择数据库中的项目) 我的控制器代码的一部分 newVmRecord.SurveyAnswerOption = new SelectList(db.SurveyAnswerOptions, "AnswerOptionText", "AnswerOptionText", ar.SurveyAnswer); 这是剃刀

正在开发MVC5应用程序

我有一张有一串列的桌子。一列包含项目的单选按钮列表。由于这是一个“编辑”视图,我需要正确地预先填充所选单选按钮。(即选择数据库中的项目)

我的控制器代码的一部分

 newVmRecord.SurveyAnswerOption = 
       new SelectList(db.SurveyAnswerOptions, 
           "AnswerOptionText", "AnswerOptionText", ar.SurveyAnswer);
这是剃刀:

  @foreach (SelectListItem item in 
    (IEnumerable<SelectListItem>)Model[i].SurveyAnswerOption)
  {
      @Html.RadioButtonFor(modelItem => Model[i].SelectedSurveyAnswer, 
        Model[i].SurveyAnswerOption, new { @Checked = 
        Model[i].SelectedSurveyAnswer}) @item.Text
  }  
有什么建议吗?谢谢

请尝试以下操作:

@foreach (SelectListItem item in (IEnumerable<SelectListItem>)Model[i].SurveyAnswerOption)
  {
      @Html.RadioButtonFor(modelItem => Model[i].SelectedSurveyAnswer,@item.Value, Model[i].SelectedSurveyAnswer == item.Value ? new {Checked = "checked"} : null) @item.Text
  } 
@foreach(在(IEnumerable)模型[i]中选择ListItem项。测量和投影)
{
@Html.RadioButton(modelItem=>Model[i]。SelectedSurveyAnswer,@item.Value,Model[i]。SelectedSurveyAnswer==item.Value?新建{Checked=“Checked”}:null)@item.Text
} 

您是否确认正在填充ar.调查,并且没有铸造问题(即:真/假、是/否、1/0)?@KevinRaffay是。有数据。我尝试在foreach的第一行添加它,它显示数据:@Html.DisplayTextFor(modelItem=>Model[I]。SelectedSurveyAnswer);如果@checked被翻译成html上的
checked
属性。。。它应该只接受单词
checked
或“”。。。那么
@Html.RadioButtonFor(modeleItem=>Model[i]呢。SelectedSurveyAnswer,Model[i]。SurveyAnswerOption,new{@Checked=Model[i]。SelectedSurveyAnswer==“yes”?“Checked”:“}
我同意David的观点——我记得“Checked”是属性。实际上,你甚至不想
Checked=“”
因为简单地使用checked属性会让一些浏览器检查单选按钮,因此使用上面David的示例将最终检查集合中的最后一个单选按钮,而不管哪个单选按钮已选中。单选按钮的混乱是我通常选择下拉菜单的原因。请快速说明。
@foreach (SelectListItem item in (IEnumerable<SelectListItem>)Model[i].SurveyAnswerOption)
  {
      @Html.RadioButtonFor(modelItem => Model[i].SelectedSurveyAnswer,@item.Value, Model[i].SelectedSurveyAnswer == item.Value ? new {Checked = "checked"} : null) @item.Text
  }