【发布时间】:2015-01-17 15:14:27
【问题描述】:
我正在使用 Petapoco(在 Umbraco 中)从数据库中获取 IEnumerable 并将其传递给视图。下面的代码缩写以便于概述
型号:
public class Account
{
[Column("accountId")]
[PrimaryKeyColumn(AutoIncrement = true)]
[HiddenInput(DisplayValue = false)]
public int accountId { get; set; }
[Column("accountCode")]
[Required(ErrorMessage = "Enter the account code (max 20 chars)")]
[Display(Name = "Account code")]
public string accountCode { get; set; }
}
控制器:
var db = ApplicationContext.DatabaseContext.Database;
var all = db.Query<Account>("SELECT * FROM account");
return PartialView("_accountList", all);
局部视图:
@model IEnumerable<App.Models.AccountListViewModel>
//notice I manually set the template name because MVC does not see this as an
//'Account' model but a 'Umbraco.Core.Persistence.Database+<Query>d__7`1[App.Models.Account]'
//model
@Html.EditorForModel("Account")
编辑器模板:
@model App.Models.Account
<div>
<p>account code<br/>
@Html.TextBoxFor(x => x.accountCode, new { @class = "form-control input-sm" })
</p>
@Html.HiddenFor(a => a.accountId)
</div>
在上面运行时出现以下错误:
System.InvalidOperationException:模型项传入 字典是类型 'Umbraco.Core.Persistence.Database+d__7`1[App.Models.Account]', 但是这本字典需要一个类型的模型项 'App.Models.Account'。
如何获取编辑器模板以查看此帐户模型?还是 PetaPoco 中使用编辑器模板的限制? 然而奇怪的是视图接受模型作为帐户,而编辑器模板不接受。
感谢任何帮助!
【问题讨论】:
标签: asp.net-mvc petapoco umbraco7 editortemplates