значение texbox не отображается в URL - PullRequest
0 голосов
/ 28 декабря 2018

Я хочу отправить значение текстового поля на контроллер в действии в качестве второго параметра.первый параметр - id, а второй - myval.Вот код вида:

@model System.ValueTuple<System.Data.DataTable,websitetemplate.Models.ChartQuantity>
 <div class="container">
    <div class="row">
        <div class="col-md-12 nopadding">
            <div class="col-md-4 col-sm-4">
                <div class="section-2-box-left wow fadeInLeft">
                    @if (Model.Item1.Rows.Count > 0)
                    {
                        string myimage = Model.Item1.Rows[0][4].ToString();


                        <div style="margin-bottom:10px; "><figure><img src="~/image/@myimage" /></figure></div>
                        <div style="margin-top:2px;">

                            <p>Title:@Model.Item1.Rows[0][1]</p>
                            <p>Description:@Model.Item1.Rows[0][2]</p>
                            <p>Price: $ @Model.Item1.Rows[0][3]</p>

                            <label>Quantity:</label>
                            @Html.TextBoxFor(model=>model.Item2.quantity, new { Type = "Number" })<br />


                        </div>
                     string val = Model.Item2.quantity.ToString();
                        <a href="@Url.Action("chart", "Chart", new { id = Model.Item1.Rows[0][0], myval=Model.Item2.quantity })" class="btn btn-primary">Add to chart</a>




                    }
                    else
                    {
                    <div>
                        <figure><img src="~/image/alt.jpg" /></figure>
                    </div>
                    }


                </div>
            </div>

Вот контроллер:

  public ActionResult chart(int id = 0, int myval = 0)
    {

        string val1="",val2="", val3 ="",val5="";
        int v=0;
        using (SqlConnection conn = new SqlConnection(connection))
        {

            conn.Open();
            SqlDataAdapter da = new SqlDataAdapter("Select * from [dbo].[Admin] Where ID='" + id + "'", conn);
}

Здесь в представлении модель. Элемент2.quantity не передается должным образом в действующей ссылке, поскольку он не отображается в контроллере.если кто-нибудь знает, пожалуйста, помогите мне.Спасибо.

1 Ответ

0 голосов
/ 28 декабря 2018

Вспомогательный метод Url.Action выполняется на сервере, когда механизм просмотра бритвы выполняет код в вашем представлении.Результат этого (HTML) будет отправлен в браузер, а затем браузер отобразит его.Пользователь может редактировать значение элемента ввода, и значение href уже созданного тега ссылки не может изменяться динамически!

У вас есть 2 варианта.

1) Заполните форму для отправки .Вы можете обернуть свои входные элементы внутри тега формы и сделать отправку формы.Когда форма отправлена, она также отправит текущее значение элемента ввода.Убедитесь, что ваш элемент ввода name значение атрибута соответствует имени параметра метода действия .

<form action="chart" method="get">
    <input type="number" value="@Model.Item2.quantity" name="myval" />
    <input type="hidden" name="id" value="@Model.Item1.Rows[0][0]" />
    <button type="submit" class="btn">Add to chart</button>
</form>

2) Использование JavaScript .При таком подходе вы будете перехватывать событие click с помощью JavaScript, останавливать нормальное поведение (для этого используйте метод preventDefault), считывать значение элемента input и создавать URL с теми значениями, которые вы хотите использовать в этом, и переходить к этому URl, задаваяновый URL-адрес window.location.href.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...