C# 如何在控制器中查看已检查的单选按钮?

C# 如何在控制器中查看已检查的单选按钮?,c#,asp.net,asp.net-mvc,radio-button,C#,Asp.net,Asp.net Mvc,Radio Button,如果我问一个新手问题,我很抱歉,但我是asp.net mvc新手 因此,我有这样的看法: @model FirstProject.Models.SelectRolesViewModel @{ ViewBag.Title = "Index"; } <h2>Index</h2> @using (Html.BeginForm("SelectRolesOverall","SelectRoles")) { <table class="table">

如果我问一个新手问题,我很抱歉,但我是asp.net mvc新手

因此,我有这样的看法:

@model FirstProject.Models.SelectRolesViewModel
@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

@using (Html.BeginForm("SelectRolesOverall","SelectRoles"))
{
    <table class="table">
        <tr>
            <th>Users</th>
            <th>Roles</th>
        </tr>
        @Html.EditorFor(model=>model.UsersAndRoles)
        <tr>
            <td></td>
            <td>
                <input type="submit" />
            </td>
        </tr>
    </table>
}
@model FirstProject.Models.SelectRolesViewModel
@{
ViewBag.Title=“Index”;
}
指数
@使用(Html.BeginForm(“SelectRolesOverall”、“SelectRoles”))
{
使用者
角色
@EditorFor(model=>model.UsersAndRoles)
}
和EditorTemplate:

@model FirstProject.Models.UserRole

    <tr>
        <td>@Model.User.UserName</td>
        <td>
            @Html.RadioButtonFor(model => model.Role, "Applicant") Applicant
            <br/>
            @Html.RadioButtonFor(model => model.Role, "Professor") Professor
        </td>
    </tr>
@model FirstProject.Models.UserRole
@Model.User.UserName
@RadioButton(model=>model.Role,“申请人”)申请人

@RadioButton(model=>model.Role,“Professor”)教授
我的下一个问题是:按下提交按钮后,如何查看控制器中的哪些单选按钮已被选中?我想有以下逻辑:如果申请人已经被选中,那么userRole就是申请人,否则如果教授已经被选中,那么userRole就是教授。我的控制器暂时是空的,因为我不知道写什么。

试试这个

public ActionResult [YourActionName](string role)
{
   switch(role){
      case "Applicant": /*your applicant logic*/
          break;
      case "Professor": /*your Professor logic*/
          break;
      /*
          Other logic here
      */
}
将操作名称替换为您自己的

注意参数
角色
应与视图中的单选按钮同名,这是为了允许数据绑定工作

如果您的操作方法是

public SelectRolesOverall(SelectRolesViewModel model)
然后,您可以使用访问集合

IEnumerable<UsersAndRoles> usesAndRoles = model.UsersAndRoles;
注意:您没有为属性
UserName
包含输入,因此此值不会发回,您可能无法将角色与用户匹配。您可能需要添加
@Html.HiddenFor(m=>m.UserName)
或将
@Model.User.UserName
更改为
@Html.TextBoxFor(m=>m.UserName,新的{@readonly=“readonly”})

foreach (UserRole userRole in model.UsersAndRoles)
{
  string role = userRole.Role;
  string name = userRole.UserName; // see note below
}