gpt4 book ai didi

c# - 具有匿名类型模型类的 Razor View 。有可能的?

转载 作者:IT王子 更新时间:2023-10-29 04:41:22 25 4
gpt4 key购买 nike

我想使用 razor 模板创建一个 View ,但我不想为模型编写一个类,因为在许多 View 中我将有许多查询将返回不同的模型。

例如我有一个 linq 查询:

from p in db.Articles.Where(p => p.user_id == 2)
select new
{
p.article_id,
p.title,
p.date,
p.category,
/* Additional parameters which arent in Article model */
};

我需要为此查询编写一个 View 。此查询返回文章。

现在我不知道模型定义应该是什么样子。

我尝试使用这个定义:

@model System.Collections.IEnumerable

但后来我有一个错误,对象类型中不存在文件:

*CS1061:“object”不包含“addition_field”的定义,并且找不到接受“object”类型的第一个参数的扩展方法“addition_field”*

这是我不想为其编写下一个模型的模型。当然

最佳答案

简短的回答是 using anonymous types is not supported , 然而, there is a workaround , 你可以使用 ExpandoObject

将您的模型设置为 @model IEnumerable<dynamic>

然后在 Controller 中

from p in db.Articles.Where(p => p.user_id == 2)
select new
{
p.article_id,
p.title,
p.date,
p.category,
/* Additional parameters which arent in Article model */
}.ToExpando();

...
public static class Extensions
{
public static ExpandoObject ToExpando(this object anonymousObject)
{
IDictionary<string, object> anonymousDictionary = HtmlHelper.AnonymousObjectToHtmlAttributes(anonymousObject);
IDictionary<string, object> expando = new ExpandoObject();
foreach (var item in anonymousDictionary)
expando.Add(item);
return (ExpandoObject)expando;
}
}

关于c# - 具有匿名类型模型类的 Razor View 。有可能的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6612938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com