【发布时间】:2018-07-12 20:27:33
【问题描述】:
我有一个下拉列表如下
<div class="form-group">
@Html.LabelFor(m => m.Categories, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.DropDownListFor(m => m.Categories, new SelectList(Model.CategoriesDropDownList), "Choose a category", new { @class = "form-control" })
</div>
@Html.ValidationMessageFor(m => m.Categories)
</div>
但是,当我检查模型状态是否有效时,我收到一个无效的验证错误。
我的产品表单视图模型如下
using LaptopMart.Models;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
namespace LaptopMart.ViewModels
{
public class ProductFormViewModel
{
public int Id { get; set; }
[Required]
public string Name { get; set; }
[Required]
public decimal? Price { get; set; }
[Required]
[DisplayName("Stock")]
public int? StockQuantity { get; set; }
[Required]
public string Description { get; set; }
[Required]
[Display(Name="Category")]
public ICollection<Category> Categories { get; set; }
public string Image { get; set; }
public IEnumerable<Category> CategoriesDropDownList { get; set; }
}
}
类别和产品之间存在多对多关系。当我想填写产品表格时,我希望从 CategoriesDropDownList 中选择一个类别到类别中。我该怎么做呢?
【问题讨论】:
-
@KrishnrajRana 是的,没错
-
您不能将下拉列表绑定到复杂对象的集合(
Categories就是这样) - 下拉列表绑定并回发一个简单值 -
而你的
new SelectList(Model.CategoriesDropDownList)将永远无法工作! - 建议您参考this Q/A 获取生成下拉列表的代码
标签: c# asp.net .net asp.net-mvc-4