【问题标题】:How to add a checkbox to the nopcomerce form如何在 nopcomerce 表单中添加复选框
【发布时间】:2016-09-21 22:16:09
【问题描述】:

我在 nopcomerce 做一个项目。我需要产品注册页面中的复选框。我做了以下步骤

中添加了以下代码

[ProjectRoot]\Libraries\Nop.Core\Domain\Catalog\Product.cs

public bool IsSeatPlane { get; set; }

[项目根目录]\Libraries\Nop.Data\Mapping\Catalog\CategoryMap.cs

this.Property(m => m.IsSeatPlane).IsOptional();

[ProjectRoot]\Presentation\Nop.Web\Administration\Models\Catalog\ProductModel.cs

[NopResourceDisplayName("Admin.Catalog.Products.Fields.IsSeatPlane")]
    public bool IsSeatPlane { get; set; }

[项目 根]\Presentation\Nop.Web\Administration\Validators\Catalog\ProductValidator.cs

RuleFor(m => m.IsSeatPlane);

[项目根目录]\Presentation\Nop.Web\Administration\Views\Category\ _CreateOrUpdate.cshtml

   <div class="form-group @(Model.ProductEditorSettingsModel.AllowCustomerReviews ? null : "advanced-setting")">
                    <div class="col-md-3">
                        @Html.NopLabelFor(model => model.IsSeatPlane)
                    </div>
                    <div class="col-md-9">
                        @Html.NopEditorFor(model => model.AllowCustomerReviews)
                        @Html.ValidationMessageFor(model => model.IsSeatPlane)
                    </div>
                </div>

[项目 根]\Presentation\Nop.Web\Administration\Controllers\ProductController.cs

在函数PrepareProductModel

model.IsSeatPlane = product.IsSeatPlane;

并在数据库中添加了一个字段,但无法在视图上显示复选框。

【问题讨论】:

  • 您使用的是哪个版本的 nopCommerce?

标签: c# asp.net nopcommerce


【解决方案1】:

您想在 Product 表或 Category 表中添加一列?

请检查此图片。您为类别文件夹更新了_CreateOrUpdate.cshtml。而你的财产IsSeatPlane { get; set; } 在Product.cs 中

您必须在 Product 文件夹和 _CreateOrUpdate.cshtml 中更改产品。

【讨论】:

    【解决方案2】:

    您在 CategoryMap 中编写了地图代码。但我认为这是拼写错误,好像 IsSeatPlane 不在 Category 类中,你没有在那里找到它。 所以我假设你是在 ProductMap 中完成的。但是,布尔字段不需要映射。所以你可以安全地删除它。

    ProductValidator 中的条目是无用的。你没有提到任何验证规则。

    您将 IsSeatPlane 放在 ProductModel 中。所以我再次假设有一个拼写错误。查看位置是

    [项目根目录]\Presentation\Nop.Web\Administration\Views\Product\ _CreateOrUpdate.cshtml

    而不是

    [项目根目录]\Presentation\Nop.Web\Administration\Views\Category\_CreateOrUpdate.cshtml

    现在在cshtml文件中,有2个错误:

    首先仔细看一下标有1的那一行

     <div class="form-group @(Model.ProductEditorSettingsModel.AllowCustomerReviews ? null : "advanced-setting")">
    

    在这里,您从 AllowCustomerReviews 部分复制了 div 部分。 nopCommerce 3.8 在几个管理区域中引入了基本和高级字段。以及产品页面中的设置,用于指示您在插入产品时对哪些字段感兴趣。

    所以如果你把advanced-setting类放在div里,它只会在你从Basic切换到Advanced时出现。 p>

    如果您想始终显示该字段,只需使用 form-group 类即可。

    Mark 2 非常简单。应该是model.IsSeatPlane

    所以,最后一个 div 块:

    <div class="form-group">
                    <div class="col-md-3">
                        @Html.NopLabelFor(model => model.IsSeatPlane)
                    </div>
                    <div class="col-md-9">
                        @Html.NopEditorFor(model => model.IsSeatPlane)
                        @Html.ValidationMessageFor(model => model.IsSeatPlane)
                    </div>
                </div>
    

    就是这样。

    【讨论】:

      猜你喜欢
      • 2017-04-22
      • 1970-01-01
      • 2016-08-08
      • 1970-01-01
      • 2015-06-13
      • 1970-01-01
      • 2021-05-08
      • 2012-10-02
      • 1970-01-01
      相关资源
      最近更新 更多