简体   繁体   English

在asp.net core 2.2中从视图到控制器发布位于视图模型内的对象列表

[英]Posting a list of object which is located inside a viewmodel from view to controller in asp.net core 2.2

I have a view model called "RequestGoodsBrandViewModel" and it's the combination of two models (Request and RequestGoodsBrand), I want to post a list of objects "RequestGoodsBrand" of view model " RequestGoodsBrandViewModel " from view to controller.我有一个名为“RequestGoodsBrandViewModel”的视图模型,它是两个模型(Request 和 RequestGoodsBrand)的组合,我想从视图到控制器发布视图模型“RequestGoodsBrandViewModel”的对象“RequestGoodsBrand”列表。

 public class RequestGoodsBrandViewModel
{
    public Request request{ get; set; }//single object of this
    public List<RequestGoodsBrand> requestGoodsBrand { get; set; }//List of object of this 
}

my view我的看法

                                <tbody>
                                <tr v-for="(data, index) in goods">
                                    <td width="20%">
                                        <select id="goodsDDL" class="form-control">
                                            <option v-for="options in goodsList" :value="options.id">{{options.name}}</option>
                                        </select>
                                    </td>
                                    <td width="20%">
                                        <input type="number" v-model="data.quantity" id="quantityTxt" class="form-control" />
                                    </td>
                                    <td width="20%">

                                        <select id="brandDDL" class="form-control">
                                                <option v-for="options in brands" :value="options.id">{{options.name}}</option>
                                            </select>
                                    </td>
                                    <td width="7%">
                                        <a v-on:click="addRow(index)" class="btn"><i class="fa fa-plus-circle" style="color:darkgreen"></i></a>
                                        <a v-on:click="removeRow(index)" class="btn"><i class="fa fa-minus-circle" style="color:red"></i></a>
                                    </td>
                                </tr>
                                <tr>
                                    <td colspan="4">
                                        <label>توضیحات</label>
                                        <textarea id="descTxt" class="form-control"></textarea>
                                    </td>
                                </tr>
                            </tbody>

View looks like this and table is dynamic,by pressing plus button new row will be added视图看起来像这样并且表格是动态的,按加号按钮将添加新行在此处输入图片说明

 public IActionResult AddRequestedGoods(RequestGoodsBrandViewModel model)// only RequestGoodsBrand of RequestGoodsBrandViewModel must  be a list 
    {
    }

Edit: I post my ViewModel to the controller using ajax call编辑:我使用 ajax 调用将我的 ViewModel 发布到控制器

 var requestGoodsBrand = {}
        var request = {
            NeedDate: $('#needDate').val(),
            Description: $('#descTxt').val(),
        }
        var table= document.getElementById('goodsTbl')
        for (var i = 1; i < table.rows.length - 1; i++) {
            requestGoodsBrand[i] = {
            GoodsId:(table.rows[i].cells[0].children[0].value),
            Quantity:(table.rows[i].cells[1].children[0].value),
            BrandId:(table.rows[i].cells[2].children[0].value)
            }
        }
        var model = {
            "request": request,
            "requestGoodsBrand": requestGoodsBrand,
        }
        console.log(model)
                    var data = JSON.stringify(model)
        $.ajax({
            type: "POST",
            async: true,
            url: '/GoodsRequest/AddRequestedGoods',
            data: model,
            //contentType: "application/json; charset=utf-8",
            //dataType: "html",
            success: function (data) {

            }
        });

the first object receives data but the second object which is a list, return null第一个对象接收数据,但第二个对象是一个列表,返回 null 在此处输入图片说明 Any solution?有什么解决办法吗?

i wrote a demo code for the same please on Jquery try it :我写了一个相同的演示代码,请在 Jquery 上试试:

Jquery查询

function () {
            var requestGoodsBrand = [];
        var request = {
            NeedDate: 'demo1',
            Description: 'demo2',
            }
            $('table tr').each(function () {
                var entity = {
                    GoodsId: $($(this).find('td:eq(0) input')).val(),
                    Quantity: $($(this).find('td:eq(1) input')).val(),
                    BrandId: $($(this).find('td:eq(2) input')).val()
                };
                requestGoodsBrand.push(entity);
            })
            $.post('/Home/AddRequestedGoods', { requestGoodsBrand: requestGoodsBrand, request: request })
                .done(function (result) {

                }

C# C#

 [HttpPost]
        public string AddRequestedGoods(Request request, List<RequestGoodsBrand> requestGoodsBrand)
        {
            return "";
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 从 controller 返回 viewmodel 作为 model 以查看和获取 angularjs 并显示在 Asp.Net Core 3.1 的选项标签中? - return viewmodel as a model from controller to view and geting with angularjs and show in option tag in Asp.Net Core 3.1? 数据返回 null 从视图到 ASP.NET 内核中的 controller - Data return null from view to controller in ASP.NET Core 如何在 asp .net Core 中将列表列表从视图发布到控制器? - How to post List of List from view to Controller in asp .net Core? ASP.Net Core 3 将 JSON 数组发布到控制器 - ASP.Net Core 3 Posting JSON array to controller Ajax POST 不将 model 发布到 asp.net 核心 6 中的 controller - Ajax POST not posting model to the controller in asp.net core 6 ASP.NET:开机自检列表 <Object> /使用Ajax(JSON)从视图到控制器进行建模 - ASP.NET: POST List<Object> / Model with Ajax (JSON) from view to controller 如何在ASP.NET MVC中使用Razor View从对象列表中获取控制器中的单个对象 - How to get Single Object in Controller from List of Objects using Razor View in ASP.NET MVC asp.net mvc将Json对象从视图传递到控制器 - asp.net mvc pass Json object from view to controller 可以从ASP.NET控制器查看JSON对象 - JSON object from ASP.NET controller to view How to POST javascript object, javascript object list and file list to asp.net core controller - How to POST javascript object, javascript object list and file list to asp.net core controller
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM