Привязка модели возвращает NULL - PullRequest
0 голосов
/ 20 сентября 2019

Я пытаюсь сериализовать форму и связать ее с моделью, но кое-как потомок модели InsertToUsertbls возвращает NULL.Может ли кто-нибудь помочь мне, пожалуйста:)

У меня есть следующая модель:

public class MangeAddUsers
    {
        public List<InsertToUsertbl> InsertToUsertbls { get; set; }
        public class InsertToUsertbl
        {
            public InsertToUsertbl()
            {

            }

            public int PX2ID { get; set; }
            public string CustomerNR { get; set; }
            public string SellerPersonCode { get; set; }
            public string NameOfCompany { get; set; }
            public string CompanyNo { get; set; }

        }
    }

JavaScript, чтобы получить данные и затем загрузить их в форму:

<script>
    function uuidv4() {
        return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
            var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
            return v.toString(16);
        });
    }

    function myfunction() {

        $.ajax({
            type: "GET",
            url: "/Account/GetCustomerContactInfo",
            data: {ids: '10883'},  
            dataType: 'json',
            traditional: true,
            success: function (values) {
                var holderHTML = "";

         for (var i = 0; i < values.length; i++) {
             value = values[i]

         if (value != null) {
           var guid = uuidv4();
           holderHTML += '<tr id="row' + value.CustomerNo + '">';
           holderHTML += '<input type="hidden" name="InsertToUsertbls.Index" value="' + guid + '" />';
           holderHTML += '<td><input class="inpt-tbl" type="hidden" id="CustomerNR"  name="InsertToUsertbls[' + guid + '].CustomerNR" value="' + value.CustomerNo + '" /></td>';
           holderHTML += '<td><input class="inpt-tbl" type="hidden"  id="NameOfCompany"  name="InsertToUsertbls[' + guid + '].NameOfCompany" value="' + value.NameOfCompany + '" /></td>';
           holderHTML += '<td><input type="hidden" id="CompanyNo" name="InsertToUsertbls[' + guid + '].CompanyNo" value="' + value.CompanyNo + '" /></td>';
           holderHTML += '<input type="hidden" id="SellerPersonCode" name="InsertToUsertbls[' + guid + '].SellerPersonCode" value="' + value.SalgePersonCode + '" />';
           holderHTML += '</tr>';
                    }
                }

                $('#output').append(holderHTML);
            },

            error: function () {
                console.log('something went wrong - debug it!');
            }
        })
    };
</script>

И когдазагрузка данных в форму:

    <form id="mangeUserFrom">
         <div id="output">
           <tr id="row10883">
            <input type="hidden" name="InsertToUsertbls.Index" value="fd3424ab-160d-4378-af65-ad2b790812ec">
            <td>
        <input class="inpt-tbl" type="hidden" id="CustomerNR" name="InsertToUsertbls[fd3424ab-160d-4378-af65-ad2b790812ec].CustomerNR" value="10883">
            </td>
            <td>
        <input class="inpt-tbl" type="hidden" id="NameOfCompany" name="InsertToUsertbls[fd3424ab-160d-4378-af65-ad2b790812ec].NameOfCompany" value="Some Name">
            </td>
            <td>
        <input type="hidden" id="CompanyNo" name="InsertToUsertbls[fd3424ab-160d-4378-af65-ad2b790812ec].CompanyNo" value="849">
            </td>
            <input type="hidden" id="SellerPersonCode" name="InsertToUsertbls[fd3424ab-160d-4378-af65-ad2b790812ec].SellerPersonCode" value="TT">
           </tr>
            </div>
    </form>
  <button type="button" id="createuser" onclick="PostForm();">POST</button>

JavaScript для сериализации:

<script>
    function PostForm() {

        var formdata = $("#mangeUserFrom").serializeArray();
        console.log(formdata);
        $.ajax({
            "url": '@Url.Action("MangeCreateUsers", "Account")',
            "method": "POST",
            "data": formdata,
            "dataType": "json",
            success: function (data) {


            },

            error: function () {
                console.log('something went wrong - debug it!');
            }

        });

    }
</script>

Это результат сериализации:

{name: "InsertToUsertbls.Index", value: "fd3424ab-160d-4378-af65-ad2b790812ec"}
{name: "InsertToUsertbls[fd3424ab-160d-4378-af65-ad2b790812ec].CustomerNR", value: "10883"}
{name: "InsertToUsertbls[fd3424ab-160d-4378-af65-ad2b790812ec].NameOfCompany", value: "Some Name"}
{name: "InsertToUsertbls[fd3424ab-160d-4378-af65-ad2b790812ec].CompanyNo", value: "849"}
{name: "InsertToUsertbls[fd3424ab-160d-4378-af65-ad2b790812ec].SellerPersonCode", value: "TT"}

Это мой метод контроллера Iпытаюсь POST:

  [HttpPost]
        public JsonResult CreateCustomers(CreateCustomers model)
        {
            return Json(model, JsonRequestBehavior.AllowGet);
        }

Скриншоты: image

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