【问题标题】:How to grab Checkbox values in an WebApp如何在 WebApp 中获取复选框值
【发布时间】:2016-02-28 02:27:30
【问题描述】:

我从 Nick Young 那里找到了一个关于复选框的好例子。

最后他说只需获取 AppID。我怎样才能做到这一点?

我稍后想要 if(IsSelected == true){//一些代码}

示例如下:

型号:

public class MerchantModel
{
    public int AppId { get; set; }
    public string Name { get; set; }
    public bool IsSelected { get; set; }
}

public class MerchantViewModel
{
    public List<MerchantModel> Merchants { get; set; }
}

控制器:

public class DefaultController : Controller
{
    // GET: Default
    public ActionResult Index()
    {
        var merchant1 = new MerchantModel
        {
            AppId = 1,
            Name = "Bob"
        };
        var merchant2 = new MerchantModel
        {
            AppId = 2,
            Name = "Ted"
        };
        var merchant3 = new MerchantModel
        {
            AppId = 3,
            Name = "Alice"
        };

        List<MerchantModel> list = new List<MerchantModel>();
        list.Add(merchant1);
        list.Add(merchant2);
        list.Add(merchant3);

        var model = new MerchantViewModel
        {
            Merchants = list
        };

        return View(model);
    }

    [HttpPost]
    public ActionResult Index(MerchantViewModel model)
    {
        return View(model);
    }
}

查看:

@model TestCheckBoxes.Models.MerchantViewModel

    @{
        Layout = null;
    }

    <!DOCTYPE html>

    <html>
    <head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div> 
        <form action="/default/index" method="post">
            <table>
                @for (int i = 0; i < Model.Merchants.Count; i++)
                {
                    <tr>
                        <td>
                            @Html.CheckBoxFor(x => x.Merchants[i].IsSelected)
                        </td>
                        <td>
                            @Html.HiddenFor(x => x.Merchants[i].AppId)
                            @Model.Merchants[i].AppId
                        </td>
                        <td>
                            @Html.HiddenFor(x => x.Merchants[i].Name)
                            @Model.Merchants[i].Name
                        </td>
                    </tr>
                }
            </table>

            <button type="submit">Submit</button>
        </form>



    </div>
</body>
</html>

返回到控制器中的 [HttpPost] 方法,您将获得一个 MerchantModel 列表,其布尔值为 true 或 false。这样您就可以检查它是否为真,然后从那里获取 AppId。

【问题讨论】:

  • 你的问题是什么?
  • 你想检查javascript中复选框的值吗?

标签: c# model-view-controller checkbox web-applications


【解决方案1】:

您是否尝试过在 post 操作中迭代模型中的 Merchants?像这样的东西应该可以工作:

foreach(var m in model.Merchants)
{
    if(m.IsSelected)
    {
        //execute code for this checkbox being checked
    } 
}

您可以在 post 方法的第一行设置断点,然后查看视图返回给控制器的内容。您应该期待具有所有值的商家列表:AppId、我选择和名称,因为您正在为每个商家发回所有这些值。

【讨论】:

    猜你喜欢
    • 2011-05-27
    • 2023-03-13
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    • 2018-09-17
    • 1970-01-01
    相关资源
    最近更新 更多