C# MVC 5 Razor视图未在if条件下呈现HTML

C# MVC 5 Razor视图未在if条件下呈现HTML,c#,html,asp.net-mvc,razor,asp.net-mvc-5,C#,Html,Asp.net Mvc,Razor,Asp.net Mvc 5,这是MVC5Razor视图代码:ForestView.cshtml @model Forest.Tree @{ var resultHtml = string.Empty; } <div id="divTreeSearch> @(Html.Kendo().PanelBar(). Name("panelbar") .Items(panelbar =>

这是MVC5Razor视图代码:ForestView.cshtml

@model Forest.Tree
@{
   var resultHtml = string.Empty;
 }
<div id="divTreeSearch>
@(Html.Kendo().PanelBar().
                         Name("panelbar")
                         .Items(panelbar =>
                                        {panelbar.Add()                                                   
                               .Content(@<text>@Html.Partial("_TreeSearch", Model, ViewData)</text>);}))
</div>
<div id="divTreeSearchResult">
@if(Model.TreeResultObj != null)
{
  resultHtml = Html.ContentFromPartial("_TreeReport", Model.TreeResultObj);

  @Html.Raw(resultHtml);    -- Not working
  @Html.Raw(HttpUtility.HtmlDecode(resultHtml)); -- Not Working
  Html.Raw(resultHtml);    -- Not working
  Html.Raw(HttpUtility.HtmlDecode(resultHtml)); -- Not Working

  Model.resultStringSaved  = resultHtml;
  @Html.DisplayText("resultStringSaved"); -- Not Working

   @Html.Raw("<text>Test</text>") -- Even this is not working

}

 @Html.Raw(Model.resultStringSaved) -- Not Working
 @Html.Raw(HttpUtility.HtmlDecode(Model.resultStringSaved)) -- Not Working
 @Html.DisplayText("resultStringSaved") -- Not Working

  @Html.Raw("<text>Test</text>") -- This is Working
</div>
@model-Forest.Tree
@{
var resultHtml=string.Empty;
}

此时,您只需调用一个方法并忽略结果。尝试:

@: @Html.Raw(resultHtml)
@:
切换到输出模式。注意:如果您使用的是清晰的标记,它会自动切换。例如:

<div>@Html.Raw(resultHtml)</div>
@Html.Raw(resultHtml)

1-呈现的内容应该违反HTML语法,Razor通常不会呈现错误的HTML内容。
2-在一整天进行了无数次测试之后,将HTML.Raw(resultHtml)放入dev.

: 更改使用:

@Html.Raw(Html.DisplayFor(modelItem => item.Mensagem)) 
作者:


你将得到渲染的HTML与你任何

我也面临着同样的问题,但我可以继续工作。我想在for循环中打开一个div start并有条件地结束它

将任何伪HTML元素放在@HTML.Raw之前

<div id="divTreeSearchResult">
@if(Model.TreeResultObj != null)
 {
  resultHtml = Html.ContentFromPartial("_TreeReport", Model.TreeResultObj);
  <span>dummySpan</span>
  @Html.Raw(resultHtml);    
  @Html.Raw(HttpUtility.HtmlDecode(resultHtml)); 
  @Html.Raw(resultHtml);   
  @Html.Raw(HttpUtility.HtmlDecode(resultHtml)); 

 Model.resultStringSaved  = resultHtml;
 @Html.DisplayText("resultStringSaved"); 

 @Html.Raw("<text>Test</text>") 

}

@Html.Raw(Model.resultStringSaved) 
@Html.Raw(HttpUtility.HtmlDecode(Model.resultStringSaved)) 
@Html.DisplayText("resultStringSaved") 

@Html.Raw("<text>Test</text>") 
</div>

@if(Model.TreeResultObj!=null)
{
resultHtml=Html.ContentFromPartial(“_TreeReport”,Model.TreeResultObj);
杜米斯潘
@Html.Raw(resultHtml);
@Html.Raw(HttpUtility.HtmlDecode(resultHtml));
@Html.Raw(resultHtml);
@Html.Raw(HttpUtility.HtmlDecode(resultHtml));
Model.resultStringSaved=resultHtml;
@DisplayText(“resultStringSaved”);
@Html.Raw(“测试”)
}
@Html.Raw(Model.resultStringSaved)
@Html.Raw(HttpUtility.HtmlDecode(Model.resultStringSaved))
@Html.DisplayText(“resultStringSaved”)
@Html.Raw(“测试”)
在您放置一个虚拟html元素之后,下面的@html.Raw命令都将生效

快乐编码


Tarak

@Dobbins他们显然已经试过了,在这个问题中,我的意思是
TreeResultObj
null
TreeResultObj不是null,而且我正在从LoadContents中取回HTML字符串,我正在试着Marc Gravell的建议,你在视图中放了断点吗,并试图查看TreeResultObj的值?它不起作用。。。HTML字符串很好-但是当我查看页面源代码时,我可以看到div'divTreeSearchResult',但它是空的。。。HTML字符串中包含节和javascript函数。。。这可能是原因吗?我甚至不能显示如下内容:@:@Html.Raw(resultset),它已经包含在标记中。我还检查了源html,看起来不错。。。。房间在那里,但它是空的。谢谢
<div id="divTreeSearchResult">
@if(Model.TreeResultObj != null)
 {
  resultHtml = Html.ContentFromPartial("_TreeReport", Model.TreeResultObj);
  <span>dummySpan</span>
  @Html.Raw(resultHtml);    
  @Html.Raw(HttpUtility.HtmlDecode(resultHtml)); 
  @Html.Raw(resultHtml);   
  @Html.Raw(HttpUtility.HtmlDecode(resultHtml)); 

 Model.resultStringSaved  = resultHtml;
 @Html.DisplayText("resultStringSaved"); 

 @Html.Raw("<text>Test</text>") 

}

@Html.Raw(Model.resultStringSaved) 
@Html.Raw(HttpUtility.HtmlDecode(Model.resultStringSaved)) 
@Html.DisplayText("resultStringSaved") 

@Html.Raw("<text>Test</text>") 
</div>