这是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>

ForestView.cshtml-@model Forest.Tree
_TreeSearch.cshtml-@model Forest.Tree
_TreeReport.cshtml-@model Forest.SearchData.Results
模型Forest.Tree中的projerty TreeResultObj类型为Forest.SearchData.Results
ForestView.cshtml是最初加载的主视图,显示来自_TreeSearch部分的搜索输入
当输入搜索条件并单击“搜索”按钮时(所有这些都来自_TreeSearch)-进行ajax调用并调用TreeSearch(id tree)操作
该操作再次返回主“ForestView”,但现在已填充模型属性“TreeResultObj”。因此,“ForestView”中“if conditon”中的代码执行并调用另一个部分以将内容作为HTML字符串取回,该字符串保存在“resultHtml”变量中
在这一点上,我可以看到像"<Text>blah blah blah</text>"
但是,试图在主“ForestView”中的搜索面板下面显示HTML字符串是不起作用的-我已经尝试了几乎所有可能的方法。
if条件中的任何文本都没有呈现-这是一个ajax调用,因此没有页面刷新-我可以看到HTML字符串值,也可以将其保存为模型属性,但无法在主视图中显示它。
任何帮助都将不胜感激。提前谢谢。

最佳答案

在这一点上,您只是调用一个方法并忽略结果。尝试:

@: @Html.Raw(resultHtml)

@:切换到输出模式。注意:如果你使用的东西明显是标记,它会自动切换。例如:
<div>@Html.Raw(resultHtml)</div>

关于c# - MVC 5 Razor View 无法在if条件下呈现HTML,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41251838/

10-09 16:17