ViewBag 未写入 Razor 的输出中

ViewBag is not written in output for Razor

ViewBag 值在 运行 ASP.NET MVC4 网页时被完全忽略。

这是上图的来源。 即使我正在检查 ViewBag.SearchResultsJson 是否为 null 或空,ViewBag 仍然没有写入输出。

<script>
    @{
        HtmlString jsonText = new HtmlString("");
        if (!string.IsNullOrWhiteSpace(ViewBag.SearchResultsJson))
        {
            jsonText = Html.Raw(ViewBag.SearchResultsJson);
        }
    }

    $(document).ready(function() {
        var json = @jsonText;
        app.value('searchResultsJson', json);
    })
</script>

我在这里错过了什么?

根据您的代码,一个空的 jsonText 是一个有效的场景,所以我不会关注为什么这个变量是空的。

错误的原因是您没有用引号将 @jsonText 括起来以在 Javascript 侧呈现有效字符串。

你应该改变

var json = @jsonText;

来自

var json = '@jsonText';