Как работать с несколькими кнопками с помощью ввода в представлении Razor, используя ASP. Net MVC? - PullRequest
1 голос
/ 02 февраля 2020

Я видел много постов, касающихся нескольких кнопок, вызывающих метод Action, но это все без ввода.

У меня Razor View. Он сгенерирует несколько входов и кнопок

Пример

Вид элемента

@foreach (var item in ViewBag.Prod)
{
    <input type="text" id="txtQuantity" class="form-control txtQty">

    <button type="button" data-src="@(item.ItemID)" class="btn btn-primary btn-sm" onclick="location.href='@Url.Action("AddValue", "MyController")'" id="btnAddItem-@(item.ItemID)" style="margin-top: 15px;">Add</button>
}

Итак, код выше может генерировать 5 текстовых полей и 5 кнопок добавления , при каждом нажатии кнопки будет вызываться метод действия ниже.

Как я могу получить соответствующее значение текстового поля. Например, если пользователь вводит значение = 16,5 в 5-м текстовом поле и нажимает 5-ю кнопку, мне нужно получить значение того, что пользователь ввел в этом 5-м текстовом поле

Метод ActionResult

public ActionResult AddValue()
{
    //I need to get the entered textbox value
    return RedirectToAction("Item");
}

1 Ответ

0 голосов
/ 03 февраля 2020

Если вам нужно только захватить ввод для этой указанной c строки или строки, то вы можете заключить их в тег формы во время l oop.

РЕДАКТИРОВАТЬ: не забудьте добавить Атрибут имени для вашего поля ввода. Я использовал Quantity для ввода и ID для кнопки. Затем измените кнопку на type="submit" и присвойте ее значение идентификатору с помощью value="@item.ItemID".

@foreach (var item in ViewBag.Prod)
{
    <form type="POST" action="@Url.Action('AddValue')">
       <input type="text" name="Quantity" id="txtQuantity" class="form-control txtQty">

       <button name="ID" value="@item.ItemID" type="submit" data-src="@(item.ItemID)" class="btn btn-primary btn-sm" id="btnAddItem-@(item.ItemID)" style="margin-top: 15px;">Add</button>
    </form>
}

Затем в свой контроллер добавьте атрибут [HttpPost] и, поскольку вы не используете какую-либо модель, получите представленное значение путем доступа Request[name].

[HttpPost]
public ActionResult AddValue()
{
    // input
    var value = Request["Quantity"];

    // button
    var value = Request["ID"];
    return RedirectToAction("Item");
}
...