gpt4 book ai didi

c# - 在表格中绑定(bind)多列单选按钮(每行分组)

转载 作者:行者123 更新时间:2023-11-30 17:57:12 26 4
gpt4 key购买 nike

(我不是MVC专家,只是说说)我需要渲染 <table>包含 4 列:

  • 名字
  • 无法访问
  • 浏览器
  • 文件管理器

    最后 3 个是 bool 值,需要绑定(bind)到一个单选按钮,这个单选按钮需要为每一行对它们进行分组。

    我知道在 View 中显示它的许多不同方法,但不确定确保数据正确提交回 Controller 的最佳方法。

    型号:

    public class DetailModel 
    {
    //this displays the user information
    public Users_SelectByUserId User { get; set; }
    //This is what builds the Table with the 4 columns.
    public List<UserMinistryRef_SelectByUserID> MinistryRef { get; set; }

    }

    --

    public class UserMinistryRef_SelectByUserID
    {
    public int UserRecordId { get; set; }
    public int MinistryId { get; set; }
    public bool Minadmin { get; set; }
    public bool Updater { get; set; }
    public bool Viewer { get; set; }
    public string mname { get; set; }
    }

    什么是最好的显示方式,并且能够将这些内容正确地填充回 Controller ?我试图遍历 MinistryRef 集合,但我并没有得到太多的运气,在循环遍历集合时无法让它与 Razor 一起工作,并且绑定(bind)到第 3 方网格控件结果证明是相当忙碌。

    我不确定我是否在正确的轨道上......

     @foreach (UserMinistryRef_SelectByUserID ministry in Model.MinistryRef)
    {
    <tr>
    <td>@ministry.mname</td>
    ***NOte the below @Helpers are not supposed to work, just trying to show what I'm hoping to achieve.
    <td>
    @Html.RadioButtonFor(Model.MinistryRef.MinAdmin == true)
    </td>
    <td>
    Html.RadioButtonFor(Model.MinistryRef.Viewer == true)
    </td>
    <td>
    Html.RadioButtonFor(Model.MinistryRef.Viewer == false && Model.MinistryRef.MinAdmin == false)
    </td>
    </tr>
    }

    有什么想法吗?

  • 最佳答案

    也许您可以使用 int 抽象来控制单选按钮组,如下所示:

    模型

    public class UserMinistryRef_SelectByUserID
    {
    public int UserRecordId { get; set; }
    public int MinistryId { get; set; }
    public bool Minadmin { get; set; }
    public bool Updater { get; set; }
    public bool Viewer { get; set; }
    public string mname { get; set; }
    public int AccessRights { get; set; } //0 = viewer, 1 = updater, 2 = minadmin
    }

    查看

    @{ int count = 0; }
    @foreach (UserMinistryRef_SelectByUserID ministry in Model.MinistryRef)
    {
    <tr>
    <td>@ministry.mname</td>
    <td>
    <input name="MinistryRef[@(count)].AccessRights" type="radio" value="0" @if(ministry.Viewer){<text>checked="checked"</text>} />
    </td>
    <td>
    <input name="MinistryRef[@(count)].AccessRights" type="radio" value="1" @if(ministry.Updater){<text>checked="checked"</text>} />
    </td>
    <td>
    <input name="MinistryRef[@(count)].AccessRights" type="radio" value="2" @if(ministry.Minadmin){<text>checked="checked"</text>} />
    </td>
    </tr>
    count++;
    }

    Controller

    [HttpPost]
    public ActionResult action( DetailModel vm )
    {
    if (ModelState.IsValid)
    {
    foreach( var min in vm.MinistryRef )
    {
    switch( min.AccessRights )
    {
    case 0: /* Viewer */
    case 1: /* Updater */
    case 2: /* Minadmin */
    }
    }
    }

    return RedirectToAction("SomeHttpGet");
    }

    关于c# - 在表格中绑定(bind)多列单选按钮(每行分组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13388913/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com