Передать одно значение из формы в метод - C#
Формулировка задачи:
У меня есть представление:
И метод, принимающий значение из формы:
Но он всегда принимает null.
Прошу помощи, что не так?
Все значения передаются, кроме product.Cost... Что не так, product.Cost это decimal.
<form asp-action="Buy" asp-controller="Home" asp-anti-forgery="true"> <table class="table"> <tr> <th>Наименование</th> <th>Количество</th> <th>Цена</th> <th></th> </tr> @foreach (var product in products) { <tr> <td>@product.Name</td> <td>@product.Quantity</td> <td>@product.Cost</td> <td> <input type="number" name="buy" hidden="hidden" value="@product.Cost" /> <input type="submit" value="Купить" class="btn btn-default" /> </td> </tr> } </table> </form>
[HttpPost] public async Task<IActionResult> Buy(decimal? buy) { // Какая-то логика }
Попробовал передать побольше параметров:
<td>@product.Name</td> <td>@product.Quantity</td> <td>@product.Cost</td> <td> <input type="number" name="product.Cost" hidden="hidden" value="@product.Cost" /> <input type="text" name="product.Name" hidden="hidden" value="@product.Name" /> <input type="number" name="product.Id" hidden="hidden" value="@product.Id" /> <input type="number" name="product.Quantity" hidden="hidden" value="@product.Quantity" /> <input type="submit" value="Купить" class="btn btn-default" /> </td>
Решил проблему, передавая Id продукта.
<input type="number" name="id" hidden="hidden" value="@product.Id" /> <input type="submit" value="Купить" class="btn btn-default" />
Не по теме:
Не совсем решение проблемы, но передавать Id, думаю, будет правильнее. Суть проблемы в decimal.
Ну и выложу, окончательное решение. А вдруг...
<table class="table"> <tr> <th>Наименование</th> <th>Количество</th> <th>Цена</th> <th></th> </tr> @foreach (var product in products) { <tr> <td>@product.Name</td> <td>@product.Quantity</td> <td>@product.Cost</td> <td> <form asp-action="Buy" asp-controller="Home" asp-anti-forgery="true"> <input type="number" name="id" hidden="hidden" value="@product.Id" /> <input type="submit" value="Купить" class="btn btn-default" /> </form> </td> </tr> } </table>
Решение задачи: «Передать одно значение из формы в метод»
textual
Листинг программы
string decimalNum = "4"; decimal.TryParse(decimalNum, out var newNum); Console.WriteLine(newNum);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д