c# - ViewData 中的 HTML 标记呈现问题?另外,MVC 中的 MultiView 功能?

标签 c# asp.net-mvc partial-views viewdata

我正在尝试使用 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/

相关文章:

.net - Umbraco 与 DotNetNuke : can't decide which one is more suitable

c# - 客户端自定义不显眼的验证不起作用

ruby-on-rails - Rails 3 局部变量未传递给局部变量

c# - Entity Framework 不会检测导航属性的更改

c# - HttpClient/在地铁应用程序中

c# - 在 Dispose(bool) 方法实现中,不应该将成员设置为 null 吗?

C#泛型类型和存储库模式

asp.net-mvc-3 - 使用接口(interface)作为局部 View 的模型类型+数据注释

testing - 测试渲染模板指定次数

c# - 深度复制一个值类型的锯齿状数组而不进行序列化