我正在加速ASP.NET MVC,并研究如何在视图中输出消息。做这样的事情最好的方法是什么?助手?控制?或者就是这样?
<% if (ViewData.ContainsKey("message") && !string.IsNullOrEmpty(ViewData["message"].ToString())) { %>
<div class="notice">
<%= ViewData["message"] %>
</div>
<% } %>
答案 0 :(得分:5)
我会使用html帮助器:
public static class HtmlExtensions
{
public static string GetMessage(this HtmlHelper htmlHelper)
{
var message = htmlHelper.ViewData["message"] as string;
if (string.IsNullOrEmpty(message))
{
return string.Empty;
}
var builder = new TagBuilder("div");
builder.AddCssClass("notice");
builder.SetInnerText(message);
return builder.ToString();
}
}
并在视图中:
<%= Html.GetMessage() %>
备注:如果您决定按原样使用代码,请不要忘记对邮件的值进行html编码。
答案 1 :(得分:1)
我认为你所拥有的条件是最简单的方法。控制感觉有点太“沉重”。如果你发现自己重复了很多,也许是帮助方法。