【问题标题】:How can i send checked value of checkbox? I want to send checkbox value to controller and save changes in database我如何发送复选框的选中值?我想将复选框值发送到控制器并将更改保存在数据库中
【发布时间】:2015-05-22 15:00:58
【问题描述】:

如何在控制器 mvc 4 中获取复选框值?我想将复选框值发送到控制器并将更改保存在数据库中。我首先使用的是 Entity Framework 4.5 和 MVC4 数据库。

【问题讨论】:

  • 显示您的模型、视图和控制器。你试过什么。

标签: asp.net-mvc-4 checkbox ef-database-first


【解决方案1】:

首先创建视图模型

 public class UnitVM 
    {
    public List<Unit> UnitObj { get; set; }
}

public class Unit
    {
    public int Id { get; set; } 
    public string RoomNo { get; set; }
    public bool CheckedStatus { get; set; }
}

然后在控制器中,创建“HttpGet”动作来绑定checkboxlist。

别忘了添加

使用 BootMvcApplication3.Models;

使用 System.Text;

[HttpGet]
    public ActionResult Med()
    {
        UnitVM obj = new UnitVM(); // Create object of viewmodel
        obj.UnitObj = BindUnits(); // function to bind checkboxlist values
        return View(obj);
    }

    public List<Unit> BindUnits()
    {
        List<Unit> obj = new List<Unit>();
        var trverse = dbContext.ALFUnits.Where(x => x.UNITSiteCode.Equals("AZA"));

        foreach (var i in trverse)
        {
            obj.Add(new Unit { Id = i.Id, RoomNo = i.RoomNo });
        }

        return obj;
    }

[HttpPost]
    public ActionResult Med(UnitVM obj)
    {

        StringBuilder sb = new StringBuilder();

        foreach (var item in obj.UnitObj)
        {
            if (item.CheckedStatus == true)
            {
                sb.Append(item.RoomNo + ", ").AppendLine();
            }
        }

        ALFMedcartMaster add = new ALFMedcartMaster();

        add.Room = sb.ToString(); //Store checked Room nos. in "101,102,103" this format

        dbContext.ALFMedcartMasters.Add(add);
        dbContext.SaveChanges();
        return View();
    }

在视图中

@model BootMvcApplication3.Models.UnitVM

for (int i = 0; i < Model.UnitObj.Count; i++)
        {
                    @Html.CheckBoxFor(m => Model.UnitObj[i].CheckedStatus)
                    @Model.UnitObj[i].RoomNo
                    @Html.HiddenFor(m => Model.UnitObj[i].Id)
                    @Html.HiddenFor(m => Model.UnitObj[i].RoomNo)

        }

<input type="submit" value="Update" />

这里需要“CheckedStatus”来保存真假值 而“@Model.UnitObj[i].RoomNo”用于显示实际房间号。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-27
    • 2021-04-19
    • 1970-01-01
    相关资源
    最近更新 更多