c# - 获取由 foreach 循环 mvc 生成的选中复选框

标签 c# asp.net-mvc database checkbox foreach

我在将选中的复选框放入我的 mvc Controller 并将它们保存在数据库中时遇到问题。我在创建 View 中使用 for each 循环生成了我的列表。

我的广告类:

    public class Advert
  {
    public int AdvertId { get; set; }
    public int SponsorId { get; set; }
    [DisplayName("Amount")]
    public int Amount { get; set; }


    [DisplayName("Start date")]
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yy}")]
    [DataType(DataType.Date)]
    public System.DateTime StartDate { get; set; }

    [DisplayName("End date")]
    [DataType(DataType.Date)]
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yy}")]
    public DateTime EndDate { get; set; }

    public List<Continent> Continents { get; set; }
    public List<Country> Countries { get; set; }
    public List<Sport> Sports { get; set; }
    public Gender Gender { get; set; }
    public Sponsor Sponsor { get; set; }
    public int SponsorTypeId { get; set; }
  }

(部分)创建 View

    <div class="editor-label">
    @Html.LabelFor(model => model.SponsorId, "Select sport")
</div>

<div class="editor-field">
    @foreach (var item in Model.Sports)
    {
            <tr>
                <td>
                    <input type="checkbox" id="@item.SportId" name="SelectedSport" value="@item.SportId"/>
                </td>
                <td>
                    @item.SportName
                </td>
            </tr> <br />  
    }   
</div>

广告 Controller

// POST: /Advert/Create
[HttpPost]
public ActionResult Create(Advert advert)
{
  ViewBag.SponsorId = new SelectList(db.Sponsors, "SponsorId", "SponsorCompany", advert.SponsorId);
  advert.SponsorTypeId = service.sponsorType(advert.Amount);   

    if (ModelState.IsValid)
    {
      db.Adverts.Add(advert);
      db.SaveChanges();
      return RedirectToAction("Index");
    }

    return View(advert);
}

我真的被困在这一点上了一段时间,所以欢迎任何帮助!

最佳答案

如果您只是想获取 ID,那么最直接的方法是使用命名参数。

<input type="checkbox" id="myParams" name="myParams" value="@item.SportId"/>

然后只需更改您的定义以按名称拉出该列表

public ActionResult Create(Advert advert, string[] myParams)

关于c# - 获取由 foreach 循环 mvc 生成的选中复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16324649/

相关文章:

c# - 使用参数 AutoMapper 映射 View 模型子级

c# - 更新面板或 Ajax 调用

c# - 将浮点字节数组转换为十进制

c# - ASP.NET MVC : How to find Controllers with [Authorize] attributes using Reflection in C#?(或如何构建动态 Site.Master 菜单?)

sql - 如何在不替换 SQL Server 中的子字符串的情况下替换句子中的特定单词

database - 获取 maxmind 数据库中的区域名称

database - 记录如何存储在 MS Access 页面中?一条记录可以分两页存储吗?

c# - 当一个下拉列表值更改时,更改 radgrid 其他行中相同下拉列表的值

c# - 创建 Windows 窗体作为类库

javascript - 无法在 mvc View 中使用 ajax 调用获取操作返回的模型对象列表