Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 逐字字符串文字不解释html_C#_Asp.net Core_Asp.net Core Mvc - Fatal编程技术网

C# 逐字字符串文字不解释html

C# 逐字字符串文字不解释html,c#,asp.net-core,asp.net-core-mvc,C#,Asp.net Core,Asp.net Core Mvc,在我的控制器操作中,我向视图发送一条消息- model.Result = ex.Message; model.Result = model.Result + @" If you would like to create one, please <a href="something"> click here </a>"; 但实际出现的是 The member doesn't exist. If you would like to create one, please &l

在我的控制器操作中,我向视图发送一条消息-

model.Result = ex.Message;
model.Result = model.Result + @" If you would like to create one, please <a href="something"> click here </a>";
但实际出现的是

The member doesn't exist. If you would like to create one, please <a href> click here </a>.
该成员不存在。如果您想创建一个,请。
所以,我有两个问题-


1) 为什么逐字字符串文本不计算html。


2) 有更好的方法吗?我不喜欢在我的控制器中使用html,但我也不想为一行html设计过多的东西。

Razor自动对字符串进行html编码以确保安全(防止脚本注入)。如果需要实际的Html,则需要使用
Html.Raw

@Html.Raw(Model.ResultMessage)

“为什么逐字字符串文字不计算html。”-字符串文字不计算任何内容。。。他们是。。。。文字;这就是他们所做的。。。我怀疑这里真正的问题可能是“为什么MVC/razor会逃逸我的字符串,而我却想将其视为可信的html?”——在这种情况下,Chris Pratt已经向您介绍了NIT:可能是html编码,而不是url编码;但是:是的,如果我在控制器中使用
@Html
,它会给我一个错误,告诉我它在当前context.Doh中不存在。很抱歉头思考一件事,手打另一件事。修正了。@ChrisPratt你知道为什么会这样吗?是故意的。这是非常有意的。同样,允许任何随机字符串输出将在应用程序中打开一个巨大的安全隐患。他们提供了
Html.Raw
,因此您仍然可以根据需要输出Html,但重要的是,这需要您做出有意识的选择,充分意识到任何潜在的副作用(即,不要对用户提交的内容使用
Html.Raw
,除非您暗中信任所述用户,例如您所在组织的员工)
@Html.Raw(Model.ResultMessage)