输入隐藏值不会发送到控制器

时间:2018-04-08 12:18:04

标签: javascript c# asp.net-mvc

我正在尝试发布到我的数据库,所有我想要的东西我可以从我的formcollection和我的表中获得但输入隐藏值。我的主视图是使用@model List

这是我的代码,这是我的模态弹出窗口

@using (Html.BeginForm("update3", "UpdateInfo", FormMethod.Post))
{

<div class="modal fade" role="dialog" id="mymodal">



    <form id="stok_formu">
        <div class="modal-dialog modal-lg">
            <div class="modal-content">


                <div class="modal-header">
                    <button class="close" type="button" data-dismiss="modal">&times;</button>



                </div>
                <div class="modal-body" id="modal2">

                    <div class="row">
                        <label for="names" id="name" name="name"></label>
                        <input type="hidden" id="names" name="names" />
                        
                   
                    </div><br />

                    <div class="row">
                        <div class="col-md-3">
                            @Html.Label(" Clothes codes: ")
                        </div>
                        <div class="col-md-3">

                            <input type="number" class="input-sm" id="codes" name="codes" />
                        </div>
                    </div><br />

                    <div class="row">
                        <div class="col-md-3">
                            @Html.Label("New Price : ")
                        </div>
                        <div class="col-md-3">

                            <input type="number" class="input-sm" id="newprice" name="newprice" />
                        </div>
                    </div>


                    <input class="btn btn-success" id="change"  type = "submit" name="change"/>
                </div>


            </div>
        </div>
        </form>
</div>
}

使用这个javascript代码,我可以从我的表中获取我的“名称”并加上我的模态,我的问题是开始在这里,当我点击按钮提交模式弹出窗口不会向控制器发送隐藏值但ican得到我的“newprice”的价值

 function metot(x) {
        namee = document.getElementById("tablo2").rows[0].cells.item(0).innerHTML;
        document.getElementById("name").innerHTML = namee;
    }

和我主视图中的表格

 <tbody id="tablo2">


        @foreach(var oge in Model)
        {
            <tr onclick="metot(this)">
                <td>@Html.Encode(oge.name)</td>
                <td id="codes">@Html.Encode(oge.codes)</td>
                <td id="price">@Html.Encode(oge.price)</td>
                <td>
                    <button  id="change" onclick="metot(this)"  type="button" data-toggle="modal" data-target="#mymodal" class="btn btn-warning tab-content"><span>Change</span></button>

                </td>
            </tr>
        }

    </tbody>

1 个答案:

答案 0 :(得分:1)

您正在设置ID为name的标签文字,但您没有设置ID为names的隐藏字段的值,因此在您提交表单时不会发送该值。 <label>元素不会将数据发送回服务器。

这应该有用(我假设变量namee实际上应该被称为urun_adi):

function metot(x) {
    urun_adi = document.getElementById("tablo2").rows[0].cells.item(0).innerHTML;
    document.getElementById("name").innerHTML = urun_adi;
    document.getElementById("names").value = urun_adi;
}