是的,有很多像这样的问题,但奇怪的是没有答案似乎对我有用。
我的模型中有一个描述字段,我想在某些视图中截断,因此在我的模型中截断元素的不同上下文对我来说似乎有点过分了。
@{
string description = item.Description;
if (description.Length > 10)
{
description = description.Substring(0, 10) + "...";
}
//Using HtmlString
var s = new HtmlString(description);
s;
//Using Html.Raw
Html.Raw(description);
//Using Html.Display
Html.Display(description);
}
无论我尝试什么,都会导致错误或根本不显示任何内容。如果我在语句之后放置一个断点,我的字符串就像我想要的那样,我只需要在我的<td>
元素中显示它。
答案 0 :(得分:3)
在@
块中使用Html会返回MvcHtmlString
,但您不会在HTML中引用它。
@{
string description = item.Description;
if (description.Length > 10)
{
description = description.Substring(0, 10) + "...";
}
Html.Raw(description); // Doesn't print in html. You are returning to nothing
// var myStr = Html.Raw(description);
}
@Html.Raw(description) // Print in html
或者您可以在@
Html.Raw(description)
@{
string description = item.Description;
if (description.Length > 10)
{
description = description.Substring(0, 10) + "...";
}
Html.Raw(description); // Doesn't print in html. You are returning to nothing
// var myStr = Html.Raw(description);
@Html.Raw(description) // Print in html
}
答案 1 :(得分:1)
您在代码中包含了显示方法,这就是您遇到问题的原因。你应该把Html.Raw放在代码块之外。
你的代码应该是这样的:
@{
string description = "sdasdasdasdasdas dasd asdasd asd";
if (description.Length > 10)
{
description = description.Substring(0, 10) + "...";
}
}
@Html.Raw(description)