您好我正在尝试为productcategory创建一个editortemplate。
productcategorie类是:
public class ProductCategorie
{
public int Id { get; set; }
public int Gewicht { get; set; }
public string Naam { get; set; }
}
产品类是:
public class Product
{
public int Id { get; set; }
...
public ProductCategorie Categorie { get; set; }
}
现在,在我自动创建的编辑视图(脚手架)中,我得到了:
<div class="form-group">
@Html.LabelFor(model => model.Categorie, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Categorie)
@Html.ValidationMessageFor(model => model.Categorie)
</div>
</div>
正如您所看到的,我使用了编辑器,因此我可以使用EditorTemplate来实现它!
但它崩溃了,因为它不知道给它一个模型。(它在模型上给出NullReferenceException,模型为null,但我需要它,所以我可以知道什么是SelectListItem必须在选中时为True!)
以下是EditorTemplates
中存在问题的ProductCategorie.cshtml文件@using Foo.Data
@using Foo.Models
@model ProductCategorie
@{
var items = new List<SelectListItem>();
using (var context = new FooDbContext())
{
List<ProductCategorie> categorielijst = context.ProductCategorieen.ToList();
categorielijst.ForEach(x => items.Add(new SelectListItem { Text = x.Naam, Value = x.Id.ToString(), Selected = x.Id == ((ProductCategorie)Model).Id }));
}
}
@Html.DropDownList("", items)
基本上我问在编辑具有属于外键项的属性的项目时,如何获取当前所选项目的模型或数据。
如果您有任何问题,请随时提出。
(我首先使用EF 6代码,ASP.Net MVC 5)
答案 0 :(得分:1)
我们在SO聊天中解决了这个问题。
基本上,Model.Categorie
属性为null
..因此,为什么EditorTemplate会将null
传递给它。
很高兴帮助:)