Osama Elsayed Ответов: 1

Сохранение нулевого значения в базе данных ASP.NET MVC ?


i try to save the values that in text boxes in data base but it save null, not the value this code in view save null in SQL ,
it give me saving object html input element instead of value, an asp.net mvc with sql server<br/>
i try using document.getElementById but still useless
 
<br/>

    @{
        ViewBag.Title = "Index";
        Layout = "~/Views/Shared/_LayoutGentelella.cshtml";
    }
        <h2>Index</h2>
        
        <table class="table table-striped" id="DSWH_ItemGroubs">
            <thead>
                <tr>
        
                    @*<th>#</th>*@
                    <th>Group Name</th>
                    <th>Create By</th>
                    <th>Create Date</th>
                    <th>Last Modified Date</th>
                    <th>Last Modified By</th>
                    <th>Edit</th>
        
                </tr>
            </thead>
            <tbody>
                @foreach (gentelella.Models.DSWH_ItemGroubs item in Model)
                    {
                    <tr>
                        @*<th scope="row">@item.ItemGroup_ID</th>*@
                        <td>@item.ItemGroup_Name</td>
                        <td>@item.Create_By</td>
                        <td>@item.Create_Date</td>
                        <td>@item.Last_ModifiedDate</td>
                        <td>@item.Last_ModifiedBy</td>
                        <td><input type="button" value="Remove" onclick="Remove(this)" /></td>
                    </tr>
                }
            </tbody>
            <tfoot>
                <tr>
                    <td><input type="text" id="txtItemGroupName" /></td>
                    <td><input type="text" id="txtCreateBy" /></td>
                    <td><input type="text" id="txtCreateDate" /></td>
                    <td><input type="text" id="txtLastModifiedDate" /></td>
                    <td><input type="text" id="txtLastModifiedBy" /></td>
                    <td><input type="button" id="btnAdd" value="Add" /></td>
                </tr>
            </tfoot>
        </table>
        <br>
        <input type="button" id="btnSave" value="Save All" />
        @*<script src="~/Scripts/jquery-1.10.2.min.js"></script>
        <script src="~/Scripts/json2.js"></script>*@
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
        <script type="text/javascript" src="http://ajax.cdnjs.com/ajax/libs/json2/20110223/json2.js"></script>
        <script type="text/javascript">
        
            $("body").on("click", "#btnAdd", function () {
                var txtItemGroupName = $('txtItemGroupName');
                var txtCreateBy = $("#txtCreateBy");
                var txtCreateDate = $("#txtCreateDate");
                var txtLastModifiedDate = $("#txtLastModifiedDate");
                var txtLastModifiedBy = $("#txtLastModifiedBy");
        
                //Get the reference of the Table's TBODY element.
                var tBody = $("#DSWH_ItemGroubs > TBODY")[0];
        
                //Add Row.
                var row = tBody.insertRow(-1);
        
                //Add cell.
                var cell = $(row.insertCell(-1));
                cell.html(txtItemGroupName.val());
        
                cell = $(row.insertCell(-1));
                cell.html(txtCreateBy.val());
        
                cell = $(row.insertCell(-1));
                cell.html(txtCreateDate.val());
        
                cell = $(row.insertCell(-1));
                cell.html(txtLastModifiedDate.val());
        
                cell = $(row.insertCell(-1));
                cell.html(txtLastModifiedBy.val());
        
                //Add Button cell.
                cell = $(row.insertCell(-1));
                var btnRemove = $("<input />");
                btnRemove.attr("type", "button");
                btnRemove.attr("onclick", "Remove(this);");
                btnRemove.val("Remove");
                cell.append(btnRemove);
        
                //Clear the TextBoxes.
                txtItemGroupNamee.val("");
                txtCreateBy.val("");
                txtCreateDate.val("");
                txtLastModifiedDate.val("");
                txtLastModifiedBy.val("");
            });
        
            function Remove(button) {
                //Determine the reference of the Row using the Button.
                var row = $(button).closest("TR");
                var name = $("TD", row).eq(0).html();
                if (confirm("Do you want to delete: " + name)) {
                    //Get the reference of the Table.
                    var table = $("#DSWH_ItemGroubs")[0];
        
                    //Delete the Table row using it's Index.
                    table.deleteRow(row[0].rowIndex);
                }
            };
        
            $("body").on("click", "#btnSave", function () {
                //Loop through the Table rows and build a JSON array.
                alert(txtItemGroupName)
                var items = new Array();
                $("#DSWH_ItemGroubs TBODY TR").each(function () {
                    var row = $(this);
                    var item = {};
                    item.ItemGroupName = row.find("TD").eq(0).html();
                    item.CreateBy = row.find("TD").eq(1).html();
                    item.CreateDate = row.find("TD").eq(2).html();
                    item.LastModifiedDate = row.find("TD").eq(3).html();
                    item.LastModifiedBy = row.find("TD").eq(4).html();
                    items.push(item);
                });
        
                $.ajax({
                    type: "POST",
                    url: "/Groups/AddGroup",
                    data: JSON.stringify(items),
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (r) {
                        alert(r + " record(s) inserted.");
                    }
                });
            });
        </script>


Что я уже пробовал:

я пытаюсь использовать document.getElementById, но все равно бесполезно

F-ES Sitecore

var txtItemGroupName = $('txtItemGroupName');

должно быть

var txtItemGroupName = $('#txtItemGroupName');

хотя я не уверен, что это исправит вашу проблему, вы не можете просто сбросить много кода и сказать, что он "не работает". Выполните некоторую отладку и выясните, какая переменная etc не заполняется, когда вы ожидаете, что она будет заполнена, и в какой момент кода.

1 Ответов

Рейтинг:
0

AngularFreak

Привет,
Если вы хотите получить значение любого текстового поля, вы должны использовать .val (), например :

var txtItemGroupName = $('txtItemGroupName').val();


Надеюсь, это поможет!