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