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

时间:2018-12-21 22:38:09

标签: c# razor asp.net-core

我正在尝试在.net核心的Razor视图中呈现数据列表。 我有一个具有以下内容的控制器

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

        JsonConvert.SerializeObject(videos);
        return View(videos);
    }

在我看来,我尝试通过以下方式获取视图列表

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

很显然,我可以像这样@foreach (var item in Model)这样的循环中获取数据,但是我需要data属性上的纯文本/ json形式的数据。 我该如何实现?

1 个答案:

答案 0 :(得分:1)

JsonConvert.SerializeObject(videos);

不对视频值进行内联替换。您基本上是在序列化videos而不是存储值。

请务必注意以下签名:

return View(string);

will return a view with the name of the string,它不将字符串作为模型传递

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

var json = JsonConvert.SerializeObject(videos);
return View(json as Object);

那么您应该能够:

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