来自ViewBag的MVC Radiobutton

时间:2015-03-02 19:37:13

标签: model-view-controller viewbag

我在将数据从radiobutton传递到模型时遇到了问题。

这是在我的控制器中:

ViewBag.allProjectAreas = db.ProjectAreas.ToList();

这是我的观点:

@foreach (var a in ViewBag.allProjectAreas)
        {                     
              @Html.RadioButtonFor(m => m.ProjectAreaID, a.ProjectAreaID)
              @a.ProjectAreaName
        }

我认为代码应该是这样的。我可以看到ProjectAreaName没有问题,但是我无法将检查过的radiobutton中的数据发送到模型。

这是错误:

  

"编译器错误消息:CS1973:' System.Web.Mvc.HtmlHelper'没有适用的方法名称' RadioButtonFor'但似乎有一个名称的扩展方法。无法动态分派扩展方法。考虑转换动态参数或调用扩展方法而不使用扩展方法语法。"

2 个答案:

答案 0 :(得分:1)

从动态到实际的演员类型。

@foreach (var a in ViewBag.allProjectAreas as List<-*here comes your model*-)
    {                     
          @Html.RadioButtonFor(m => m.ProjectAreaID, a.ProjectAreaID)
          @a.ProjectAreaName
    }

答案 1 :(得分:0)

它说它无法理解var。明确转换

@foreach(CompleteYourModelName modelObject in ViewBag.allProjectAreas)
{
  @Html.RadioButtonFor(modelObject.ProjectAreaID.ToString(), a.ProjectAreaID)
          @a.ProjectAreaName
}

例如

     @foreach (MVCDemo2.Models.Department dept in ViewBag.DepartmentList)
            {
                @Html.RadioButton("Department", dept.Id, dept.isSelected)
@dept.Name;
            }