C# 如何通过“将数据从视图发送到控制器”;id";?

C# 如何通过“将数据从视图发送到控制器”;id";?,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我把第一步放在ASP中。NET和MVC,我不能跳过一个问题 如何将数据从两个class=“selectpicker”传输到控制器? 以下是我的代码和尝试: 型号: public class AllocatingCodesInMachinesModel { public List<string> machineList { get; set; } public List<string> codesCounterList { get; set; } p

我把第一步放在ASP中。NET和MVC,我不能跳过一个问题

如何将数据从两个class=“selectpicker”传输到控制器? 以下是我的代码和尝试:

型号:

public class AllocatingCodesInMachinesModel
{
    public List<string> machineList { get; set; }
    public List<string> codesCounterList { get; set; }
    public int numbersOfAvaibleCodes { get; set; }
}
视图:

@使用Swifferr.Models.ViewModels
@模型分配代码机器模型
@{
ViewBag.Title=“AllocatingCodesInMachines”;
Layout=“~/Views/Shared/_Layout.cshtml”;
}
普兹皮西瓦尼·科多马斯金
@使用(Html.beginnform(“AllocatingCodesInMachines”,“ActualCodes”,FormMethod.Post,new{enctype=“multipart/form data”}))
{
多斯潘·科迪

Liczba kodów dostępnych do przydzielenia:@Model.numbersOfAvaibleCodes 科多沃酒店

里兹巴·科多夫·普齐耶兰奇·马斯齐尼酒店

威比尔兹。。。 @foreach(@Model.codesCounterList中的变量项) { @item.ToString() } Wszystkie 马斯齐纳:

威比尔兹。。。 @foreach(@Model.machineList中的var项) { @item.ToString() }

//***1*** 多达伊 //***2*** }
我试过了,但不幸的是没有成功:

1 将模型从视图传递到控制器,但不知道如何在侧视图上“组合”模型

2 我试图从“selectpicker”传递所选项目,但不知道如何使用其id传输数据

我知道这很卑鄙。几天来我一直试图解决这个问题,不幸的是我摔倒了

提前感谢您为我提供的任何建议、提示和修复,以及识别代码中的错误


PS.对不起,我的英语不好。

表单输入的可能重复项需要
name
属性值与发布的视图模型匹配,而不是
id
值。这就是整个
@Html.DropDownListFor
@Html.EditorFor
的部分功能。如果您不打算使用这些Razor Html帮助程序,您至少需要将
名称
属性添加到
中,即
。因此,当您单击“提交”按钮时,MVC modelbinder知道要将哪些值绑定到视图模型的哪些属性。您不仅需要一个
名称
属性,还需要另外两个属性来绑定所选值。始终使用强类型的
HtmlHelper
方法正确生成html。感谢您的回复。从selectpicer辞职后,我开始使用HtmlHelper。现在一切都开始合二为一了。
[HttpGet]
public ActionResult AllocatingCodesInMachines()
{
    int numbersOfAvaibleCodes = //get data from DB;
    var codesCounter = //get data from DB.ToList();
    var machineList = //get data from DB.ToList();


    model.machineList = machineList;
    model.codesCounterList = codesCounter;
    model.numbersOfAvaibleCodes = numbersOfAvaibleCodes;

    return View(model);
}

[HttpPost]
public ActionResult AllocatingCodesInMachines(AllocatingCodesInMachinesModel model)
{
    var option1 = model.codesCounterList;
    var option2 = model.machineList;

    return View();
}

public ActionResult TestAction(string x, string y)
{
    var option1 = x;
    var option2 = y;

    return View("AllocatingCodesInMachines");
}
@using Swifferr.Models.ViewModels
@model AllocatingCodesInMachinesModel
@{
    ViewBag.Title = "AllocatingCodesInMachines";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>Przypisywanie kodów do maszyn</h2>
@using (Html.BeginForm("AllocatingCodesInMachines", "ActualCodes", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    <div class="row">
        <div class="col-sm-12">
            <p><h4>Dostępne kody</h4></p>
            <h5 class="text-center">Liczba kodów dostępnych do przydzielenia: <b>@Model.numbersOfAvaibleCodes</b></h5>
            <p><h4>Przydzielanie kodów</h4></p>
            <div class="col-sm-4">
                <p>Liczba kodów przydzielanych do maszyny </p>
                <select id="numbersOfCodes" class="selectpicker">
                    <option>Wybierz...</option>
                    @foreach (var item in @Model.codesCounterList)
                    {
                        <option value="@item.ToString()">@item.ToString()</option>
                    } 
                    <option value="Wszystkie">Wszystkie</option>
                </select>
            </div>
            <div class="col-sm-4">
                <p>Maszyna: </p>
                <select id="machine" class="selectpicker">
                    <option>Wybierz...</option>
                    @foreach (var item in @Model.machineList)
                    {
                        <option value="@item.ToString()">@item.ToString()</option>
                    } 
                </select>
            </div>
            <br /><br />
            //***1***
            <button type="submit" class="btn btn-info">Dodaj</button>

            //***2***
            <input type="button" class="btn btn-danger" value="Usuń" onclick="location.href='@Url.Action("TestAction", "ActualCodes", new {x = "numbersOfCode", y = "machine"})'" />

        </div>
    </div>
}