首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用petapoco和petapoco模板时模型无效

使用petapoco和petapoco模板时模型无效
EN

Stack Overflow用户
提问于 2014-11-19 22:14:45
回答 1查看 247关注 0票数 0

我使用Petapoco (在Umbraco中)从DB中获取IEnumerable并将其传递给视图。下面的代码缩写为简单的概述

型号:

代码语言:javascript
复制
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; }
}

主计长:

代码语言:javascript
复制
   var db = ApplicationContext.DatabaseContext.Database;
   var all = db.Query<Account>("SELECT * FROM account");
   return PartialView("_accountList", all);

部分意见:

代码语言:javascript
复制
@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") 

编辑器模板:

代码语言:javascript
复制
@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中使用编辑器模板是一个约束?然而,奇怪的是,视图接受模型作为帐户,但编辑器模板不接受。

任何帮助都是非常感谢的!

EN

回答 1

Stack Overflow用户

发布于 2014-11-20 11:55:51

在您的部分视图中,您的模型是一个IEnumerable,但在编辑器模板的后面,您只有一个对象。

应:

代码语言:javascript
复制
@model IEnumerable<App.Models.AccountListViewModel>

@foreach (var item in Model ) {
   Html.EditorFor(item) 
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27028090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档