我使用Petapoco (在Umbraco中)从DB中获取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>当在上面运行时,我会得到以下错误:
'Umbraco.Core.Persistence.Database+d__7`1App.Models.Account',:传递到字典中的模型项的类型是System.InvalidOperationException,但是该字典需要一个'App.Models.Account‘类型的模型项。
我如何才能获得编辑器模板来查看这个帐户模型?还是在PetaPoco中使用编辑器模板是一个约束?然而,奇怪的是,视图接受模型作为帐户,但编辑器模板不接受。
任何帮助都是非常感谢的!
发布于 2014-11-20 11:55:51
在您的部分视图中,您的模型是一个IEnumerable,但在编辑器模板的后面,您只有一个对象。
应:
@model IEnumerable<App.Models.AccountListViewModel>
@foreach (var item in Model ) {
Html.EditorFor(item)
}https://stackoverflow.com/questions/27028090
复制相似问题