C# MVC Razor-在屏幕上适当位置输出文本
我在视图中创建了一个C# MVC Razor-在屏幕上适当位置输出文本,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我在视图中创建了一个字符串,并希望将其输出到屏幕上 起初我尝试了回复。写,但由于本网站其他地方解释的原因,内容出现在页面顶部。然后我尝试使用@像这样输出字符串:@myString 这是可行的,因为它在正确的位置输出文本,但它避开了我放在那里的HTML链接。如何解决此问题?而不是您希望使用的字符串: @{ var myString = new MvcHtmlString("<tags>Text</tags>"); } 它将显示正确的值,而不是转义文本 编辑:备选
字符串
,并希望将其输出到屏幕上
起初我尝试了回复。写,但由于本网站其他地方解释的原因,内容出现在页面顶部。然后我尝试使用@
像这样输出字符串:@myString
这是可行的,因为它在正确的位置输出文本,但它避开了我放在那里的HTML链接。如何解决此问题?而不是您希望使用的字符串:
@{
var myString = new MvcHtmlString("<tags>Text</tags>");
}
它将显示正确的值,而不是转义文本
编辑:备选方案
另一个选项是,您只需内联创建MvcHtmlString,使其适当地呈现
@(new MvcHtmlString(myString))
您可以使用Html.Raw()
:
您可以为此使用Html.Raw函数
例如:
@Html.Raw(Model.YourString)
你可以这样做:
@Html.Raw(myString)
@模型myString
@Html.Raw(模型)
试试@Html.Raw(myString)。
我不建议这样做。由于各种原因,您不会将html输出发送到屏幕。如果要将文本放在屏幕的某些部分,请在视图中使用html/css样式,并仅发送输出 或者更好的@MvcHtmlString.Create(myString)
@SilvermindMvcHtmlString.Create
实际上只执行new MvcHtmlString
。。。但同意在Razor视图中语法变得更清晰。请参阅,有些实例,例如基于HTML帮助程序的用户控件,您希望将HTML直接发送到屏幕。一般来说,我会同意你的看法,但我正在制定的当前体系结构对基本用户控件和直接HTML呈现有着巨大的需求。因此,我不太容易判断其他人是否想要呈现内联HTML(虽然对于这个给定的问题,有更好的方法来完成这个任务,但谁知道他们为什么需要这样做。)直到您将任何一个答复标记为答案,您将得到更多相同的答复:)谢谢您的回答。这帮助我解决了这个问题:)
@Html.Raw(Model.YourString)
@Html.Raw(myString)