在Razor视图中将C#列表解析为原始文本

在Razor视图中将C#列表解析为原始文本,c#,razor,asp.net-core,C#,Razor,Asp.net Core,我正在尝试在.NETCore的Razor视图中呈现数据列表。 我有一个控制器,具有以下功能 public async Task<IActionResult> Index() { List<Video> videos = await _context.Video.ToListAsync(); JsonConvert.SerializeObject(videos); return View(videos);

我正在尝试在.NETCore的Razor视图中呈现数据列表。 我有一个控制器,具有以下功能

 public async Task<IActionResult> Index()
    {
        List<Video> videos = await _context.Video.ToListAsync();

        JsonConvert.SerializeObject(videos);
        return View(videos);
    }
公共异步任务索引()
{
List videos=wait_context.Video.toListSync();
序列化对象(视频);
返回视图(视频);
}
在我看来,我试图用

<div data-videos="@Html.Raw(@Model)">

显然,我可以像这样在循环中获取数据
@foreach(模型中的var项)
,但我需要它作为数据属性上的纯文本/json。 我怎样才能做到这一点

JsonConvert.SerializeObject(videos);
不对视频的值进行内联替换。您基本上是序列化
视频
,而不是存储值

请务必注意以下签名:

return View(string);
,它不会将字符串作为模型传递

因此,要强制执行,您必须执行以下操作:

var json = JsonConvert.SerializeObject(videos);
return View(json as Object);
那么你应该能够:

@model string
<div data-videos="@Html.Raw(@Model)">
@模型字符串

SerializeObject返回一个字符串。您应该将其传递给视图,而不是视频对象实例
返回视图(json作为对象)啊,多么丑陋的黑客。我宁愿
返回视图(nameof(ActionName),json)
@CamiloTerevinto,老实说,签名应该是
视图(对象模型,字符串视图名称)
。。。那就永远不是问题了。相当大的疏忽……我敢肯定,当您遇到“视图找不到”错误时,您会发现,正如我所认识的每个人:)是的,我宁愿出现编译时错误,而不是运行时错误,这是没有帮助的。