我想更改DisplayFor输出(格式化字符串),但是输出字符串中有一个&符。我该如何处理MvcHtmlString以便不逃离&号?

这是cshtml文件中的代码:

@{
    string title = @Html.DisplayFor(model => model.Entity.Description).ToString();
    if (Model.City != null)
        title = String.Format("{0} em {1}", title, Model.Entity.CityName);
    ViewBag.Title = title;
}


model.Entity.Description在数据库中的值为"Automóvel"。但是输出以html形式呈现为Automóvel。这是html输出:

<p>Autom&amp;#243;vel</p>


如果尝试在Html.Raw()中使用ViewBag.Title,则不会显示标题。

编辑:添加了更多详细信息

即使我尝试使用此代码的建议方法,ViewBag.Title也不会显示它。这是注释后的修改代码:

@{
    string title = Model.Entity.Description;
    if (Model.City != null)
    {
        title = String.Format("{0} em {1}", Model.Entity.Description,
            Model.Entity.CityName);
    }
    ViewBag.Title = Html.Raw(HttpUtility.HtmlDecode(title));
}

最佳答案

您无需以任何方式干扰标题,只需直接为其分配即可:

ViewBag.Title = Model.Entity.Description;

关于c# - MvcHtmlString.ToString在Razor中转义文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31479092/

10-09 03:19