网址中未显示texbox值

时间:2018-12-28 19:35:36

标签: asp.net-mvc

我想将文本框值作为第二个参数发送给正在使用的控制器。 第一个参数是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);
}

此处在视图中model.Item2.quantity未在操作链接中正确传递,因为未在控制器中显示。如果有人知道,请帮助我。谢谢。

1 个答案:

答案 0 :(得分:1)

当剃刀视图引擎在您的视图中执行代码时,服务器上将执行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 。在这种方法中,您将使用JavaScript拦截click事件,停止正常行为(使用preventDefault方法),读取输入元素值并使用所需的值构建URL并导航至该URl通过将新的URL设置为window.location.href