使用MVC radiobutton的列表

时间:2014-05-12 09:17:18

标签: asp.net-mvc-4 razor model radiobuttonfor

我在MVC 4中使用radiobuttonfor,我试图给用户一些他可以选择的项目。我的问题是当选择其中一个项目并将其发布到控制器时,字符串值是.net system.guid而不是实际的guid值。

  @foreach (var person in Model.InterviewDates[i].Interviewers) // all interviewers - not filtered
  {
      var list =  Model.InterviewDates[i].Interviewers.Select(p => p.InterviewerID).ToList();

      @Html.Raw(person.InterviewerName + " ")
      // TODO: Lambda for getting all Chairs based on interview type and interview date
      @Html.RadioButtonFor(m => m.InterviewSchedules[i].Chair, list, new { @style = "width:auto;background:none;border:none" })
      <br />
  }

我有一个人员列表,它包含用户ID。然后,我希望用户选择一个单选按钮将该值绑定到模型。

-       list    Count = 3   System.Collections.Generic.List<System.Guid>
+       [0] {5fb7097c-335c-4d07-b4fd-000004e2d221}  System.Guid
+       [1] {5fb7097c-335c-4d07-b4fd-000004e2d222}  System.Guid
+       [2] {5fb7097c-335c-4d07-b4fd-000004e2d223}  System.Guid
+       Raw View        

当我发布时,请点击此处:

 [HttpPost]
 public ActionResult SubmittedInterviews(InterviewManagement InterviewManagement)
 {
     return View();
 }

这是我在快速观察中可以看到的

-       InterviewManagement {IMecheAdmin.Models.InterviewManagement}    IMecheAdmin.Models.InterviewManagement
+       InterviewDates  Count = 0   System.Collections.Generic.List<IMecheAdmin.Models.InterviewDate>
-       InterviewSchedules  Count = 1   System.Collections.Generic.List<IMecheAdmin.Models.InterviewSchedule>
-       [0] {IMecheAdmin.Models.InterviewSchedule}  IMecheAdmin.Models.InterviewSchedule
        Chair   "System.Collections.Generic.List`1[System.Guid]"    string
        Cofacilitator   null    string
        Facilitator null    string
+       InterviewDate   {01/01/0001 00:00:00}   System.DateTime
        Location    null    string
        Observer    null    string
        Preference  false   bool
        Site    null    string
+       Raw View        
+       InterviewTypes  Count = 0   System.Collections.Generic.List<IMecheAdmin.Models.InterviewType>
        SelectedMembershipType  null    string

这不是我想要的:

Chair   "System.Collections.Generic.List`1[System.Guid]"    string

不说实际的GUID。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

单选按钮通常用于我们希望用户只从选定项目中选择一个选项的地方。

因此,您需要传递单个对象而不是列表:

foreach(var item in list)
{

    @Html.RadioButtonFor(m => m.InterviewSchedules[i].Chair, 
                         item.InterviewerID, 
                         new { @style = "width:auto;background:none;border:none" })
}