#c# #asp.net #model-view-controller
#c# #asp.net #модель-представление-контроллер
Вопрос:
У меня проблема с отправкой данных из представления на контроллер с помощью ползунка. Данные могут быть отправлены как объект или переменная, но это все равно не работает. Может кто-нибудь мне помочь?
Это слайдер в представлении:
<tr>
<th scope="row">1</th>
<td>
<p>@Model.UserDeterminants[0].DeterminantName.Value</p>
</td>
<td>
<form asp-area="" asp-controller="Examine" asp-action="SubmitValue" asp-route-range="range1" asp-route-id="@Model.Id" value="points" method="post" class="rd-form">
<input type="range" defaultValue="0" name="range1" id="my_range1" min="-100" max="100" onload="updateSliderValue(this.value)" onchange="updateSliderValue(this.value)"/>
<p><span>0</span></p>
<button class="button button-block button-primary button-pipaluk" type="submit">Zatwierdź</button>
</form>
</td>
<td>
<p>@Model.UserDeterminants[1].DeterminantName.Value</p>
</td>
</tr>
<script>
$('#my_range1').on("change mousemove", function () {
$(this).next().html($(this).val());
});
</script>
И контроллер:
[HttpGet]
public IActionResult SubmitValue (int range)
{
...
}
Комментарии:
1. Вы отправляете значение, поэтому оно должно быть [HttpPost] вместо [HttpGet]. Также вашим параметром действия в контроллере должен быть: public IActionResult SubmitValue ([From body] Диапазон имен таблиц)
Ответ №1:
Решаемая, спасибо @noobprogrammer. Я изменил [From body] на [FromForm] . Рабочее решение в поле зрения:
<form asp-action="Submit" asp-route-range="range" asp-route-Id="@Model.Id" method="post">
<input type="range" defaultValue="0" name="range" id="range1" min="-100" max="100" onload="updateSliderValue(this.value)" onchange="updateSliderValue(this.value)" /> <p><span>0</span></p>
<button class="button button-block button-primary button-pipaluk" type="submit">Zatwierdź</button>
</form>
<script>
$('#my_range1').on("change mousemove", function () {
$(this).next().html($(this).val());
});
</script>
и в контроллере:
[HttpPost]
public IActionResult Submit ([FromForm] int range, int Id)
{
...
}