我正在尝试使用 html 标记填充 ViewData 实例,如下所示。当页面呈现时,html 标签呈现为文本而不是 html 标记。有人知道为什么吗?
Controller 代码:
if (user.ActivationStatus == false)
{
...
ViewData["Message"] = "<p>Your account has been activated, you're good to go.</p>";
}
else
{
ViewData["Message"] = "<p>Sorry, this account has already been activated.</p>";
}
return View();
查看代码:
<h2>Confirmation</h2>
<p><%: ViewData["Message"] %></p>
其次,我过去曾在 asp.net webforms 中使用过 MultiView 功能。此功能非常理想,并且喜欢在 MVC 中实现类似的功能。
有什么方法可以根据函数结果(如上面的“if”语句)从 Controller 代码调用不同的 PartialView 到 View 中的占位符?
最佳答案
<%: %>
== Html.Encode(ViewData["Message"]);
是 HTML 编码你的字符串......
试试这个:
<%= ViewData["Message"]%>
此外,您应该能够使用 ViewData
控制部分控件并取决于 ViewData
中的值你可以渲染不同的部分。您还可以将您的 View 强类型化为一个模型,该模型代表您在页面上之后的行为...
关于c# - ViewData 中的 HTML 标记呈现问题?另外,MVC 中的 MultiView 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3487645/