Я написал класс и установил общедоступный индекс IActionResult ():
public class SuperBowl
{
public string Name { get; set; }
public double Price { get; set; }
public bool GiftPackage { get; set; }
}
[HttpGet]
public IActionResult Index()
{
double[] pricearraying = { 630, 500.25, 385.75 };
string[] namearraying = { "Red", "Green", "Blue" };
var heyinitial = new List<SuperBowl>();
for (int i = 0; i < pricearraying.Length; i++)
{
heyinitial.Add(new SuperBowl { Name = namearraying[i], Price = pricearraying[i], GiftPackage = false });
}
return View(heyinitial);
}
[HttpPost]
public IActionResult Index(List<SuperBowl> ceko)
{
double[] exposalary = { 63.00, 42.00, 21.00 };
var choosing = new List<double>();
foreach (var item in ceko.Select(x=>x.GiftPackage))
{
if (item == true)
{
choosing.Add(exposalary[ceko.FindIndex(r=>r.GiftPackage==item)]);
}
}
}
return View("MyCheckOut",choosing);
}
А вот и мой Index.cshtml:
@model List<SuperBowl>
@{
}
<!DOCTYPE html>
<html>
<head>
<title>Index</title>
</head>
<body>
<form asp-action="Index" asp-controller="Home" method="post">
<div class="table-responsive-sm table-hover">
<table align="center" class="table table-bordered">
<thead>
<tr class="table-light text-center">
<th>Item Name</th>
<th>My Price</th>
<th>Hey Gift</th>
</tr>
</thead>
<tbody>
@foreach (var st in Model)
{
<tr class="text-center">
<td asp-for="@st.Name">@st.Name</td>
<td asp-for="@st.Price">@st.Price</td>
<td asp-for="@st.GiftPackage">@Html.CheckBoxFor(m => st.GiftPackage)</td>
</tr>
}
</tbody>
</table>
<input type="submit" value="CheckOut" class="btn btn-primary" />
</div>
</form>
</body>
</html>
А вот и MyCheckOut.cshtml:
@model List<double>
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Hello</title>
</head>
<body>
<div class="table-responsive-sm table-hover">
<table align="center" class="table table-bordered">
<thead>
<tr class="table-light text-center">
<th>Our Discount Numbers</th>
</tr>
</thead>
<tbody>
@foreach (var discounting in Model)
{
<tr class="text-center">
<td>@discounting</td>
</tr>
}
</tbody>
</table>
</div>
</body>
</html>
Я ожидаю, что когда я отмечу только Red, индекс которого равен 0, то через тот же индекс 0, давайте получим экспозиционный массив [0], который равен 63.00
или когда я отмечу красные и синие, у которых эти индексы равны 0 и 2, то через те же индексы 0 и 2, давайте получим массив экспозиционный [0] и экспозиционный [2], которые равны 63 и 21.
Если я разверну все эти коды, моя таблица в Index.cshtml выглядит хорошо, и с другой стороны, все данные в порядке, когда я выбираю любой флажок, отправляющий и отправляющий свой выбор в MyCheckOut, элемент отсутствует.
Пожалуйста, помогите мне.