C# 如何通过“将数据从视图发送到控制器”;id";?
我把第一步放在ASP中。NET和MVC,我不能跳过一个问题 如何将数据从两个class=“selectpicker”传输到控制器? 以下是我的代码和尝试: 型号: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
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>
}