在 Asp.net MVC 中查看不返回多个列表

杰迪普 因为

我是桌面网络的新手。

我有两个模型。

第一的

    public class Item
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Description { get; set; }
        public double Price { get; set; }
        public double Stock { get; set; }
        public Category Category { get; set; }
        public string ImagePath { get; set; }
}

其次是

    public class Category
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public bool isSelected { get; set; }
    }

和一个 ViewModel 用于将它传递给我的视图

public class ProductsVM
{
    public IList<Item> items { get; set; }
    public IList<Category> categories { get; set; }

}

我的控制器操作方法如下所示

    [HttpGet]
    public ActionResult Products()
    {
        ViewBag.Message = "...Products...";

        ProductsVM productsVm = new ProductsVM();
        productsVm.items = db.Items.ToList();
        productsVm.categories = db.Categories.ToList();
        return View(productsVm);
    }

    [HttpPost]
    public ActionResult Products(ProductsVM model)
    {
        ViewBag.Message = "...Categories...";



        return View(model);
    }

我在我看来是这样使用它的

    @using (Html.BeginForm())
    {
        <div class="row">
            <div class="col-md-2">
                @foreach (var it in Model.categories.ToList())
                {
                    <div class="input-group">
                        @Html.CheckBoxFor(i => it.isSelected, new { Name =         "ChkCategory", id = "ChkCategory"+it.Id, @class = "Categories" }) @it.Name
                        @Html.HiddenFor(i => it.Name)

                    </div>
                }
            </div>

            @*Loading Items...*@
            <div class="col-md-10">
                @for (int i = 0; i < Model.items.Count() / 3; i++)
                {
                    <div class="row">
                   @foreach (var item in Model.items.Skip(i *         3).Take(3))
                {
                    <div class="col-md-4 col-sm-6 col-xs-12">
                        <img src="@Url.Content(item.ImagePath)" alt="@item.Description" class="thumbnail" />
                    </div>
                }
            </div>
        }
            </div>
        </div>
        <input type="submit" value="submit" />
    }


    @section scripts
    {
        <script src="~/Scripts/Products.js"></script>
    }

当我将 from 发布到控制器时,我已经尝试了所有方法来恢复我的模型

我正在使用我的 products.js 文件中的 ajax 发布 from on 复选框单击事件。

但在我的控制器操作方法中,它总是将 ViewModel 显示为 null。

我应该怎么办?难道我做错了什么。

产品.js

    $(function () {
        console.log('Inside js......');
        $('.Categories').click(function (e) {
            console.log(this.id, $("#" + this.id).is(":checked"));
            $.ajax({
                type: "POST",
                url: "/Home/Products",
                success: function () {
                    console.log("ajax successfull....");
                },
                error: function () {
                    console.log("ajax error....");
                }
            });
        });

    });
编码Yoshi

这是你的ProductsVM

public class ProductsVM
{
    public IList<Item> items { get; set; }
    public IList<Category> categories { get; set; }
}

这是您要发布的操作方法:

[HttpPost]
public ActionResult Products(ProductsVM model)

当您提交表单时,它将从表单的控件中获取值并使用控件的名称,将它们发布到Products操作中。在您的视图(表单)中,您有一个带有 name 的复选框chkCategory和一个带有 name的隐藏输入Name当您发布表单时,它将发送chkCategory及其值,以及名称为 的隐藏项目Name当它到达服务器端时,MVC 将查找Products在您的控制器中命名的操作方法然后默认绑定器将尝试查找chkCategoryName属性以查看操作是否接受它们。它不会找到它。然后它会尝试查看它是否可以创建一个ProductsVM而它不能创建,因为它ProductsVM有 2 个属性:itemscategories 并且它们与您发布的内容不匹配,因此它只会选择该操作并将其传递为空。

您的代码中有很多问题,并且它在整个 MVC 框架中的表现不佳。我建议你阅读理解 MVC 模型绑定并尝试一些简单的例子来掌握它,然后尝试你正在做的事情。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

传递列表以在ASP.NET MVC中查看

来自分类Dev

在asp.net MVC中的多个下拉列表到actionresult

来自分类Dev

在 asp.net mvc 中返回操作

来自分类Dev

ASP:NET MVC搜索中的多个单词

来自分类Dev

如何使用asp.net mvc从返回的JSON值中查看表

来自分类Dev

如何在ASP.NET MVC中从控制器传递列表以进行查看?

来自分类Dev

与ASP.NET MVC中的ASP.NET等效

来自分类Dev

我在asp.net mvc 5中查看错误

来自分类Dev

在ASP.NET MVC 5中查看图像

来自分类Dev

asp.net mvc cssRewriteUrlTransform多个参数

来自分类Dev

搜索多个表ASP.NET MVC

来自分类Dev

asp.net MVC级联下拉列表

来自分类Dev

MVC ASP.Net VB的下拉列表

来自分类Dev

带列表的ASP.NET MVC PartialView

来自分类Dev

ASP.NET MVC +填充下拉列表

来自分类Dev

ASP.NET MVC绑定嵌套列表

来自分类Dev

如何在ASP.NET MVC中使用选择列表返回多个值?

来自分类Dev

如何在ASP.NET MVC中使用选择列表返回多个值?

来自分类Dev

ASP.Net MVC 5中的Cookie

来自分类Dev

ASP.NET MVC中的可选HttpPostedFileBase

来自分类Dev

ASP .NET MVC 5中的异步任务

来自分类Dev

ViewModel中的ASP.NET MVC SelectList

来自分类Dev

ASP.NET MVC中的异步方法

来自分类Dev

ASP.NET MVC 5中的ClaimsIdentity

来自分类Dev

ASP.NET MVC中的区域路由

来自分类Dev

在ASP.NET MVC中填充DropDownList

来自分类Dev

更新ASP .Net MVC中的记录

来自分类Dev

在ASP .NET MVC中存储会话数据

来自分类Dev

ASP中的异步Web服务。NET MVC