我是ASp.net MVC的新手,所以对你来说这可能是微不足道的。不过,我还有一个问题要问:我想根据booleean显示或不显示图像。
使用classis asp.net,我将可见属性与我的布尔值进行数据绑定,然后跳转,诀窍就完成了。但是这里它不起作用。我浏览了网页并找到了处理它的方法:
<%= Html.Image(this.ResolveUrl("~/attention.gif"),"dates invalid",myboolean) %>
使用此类Html hepler:
public static string Image(this HtmlHelper helper,
string url,
string altText,
bool IsVisible)
{
string returnvalue = string.Empty;
if (IsVisible)
{
TagBuilder builder = new TagBuilder("image");
builder.Attributes.Add("src", url);
builder.Attributes.Add("alt", altText);
builder.MergeAttributes(new RouteValueDictionary(htmlAttributes));
returnvalue = builder.ToString(TagRenderMode.SelfClosing);
}
return returnvalue;
}
我做对了还是有些事我没有得到?
答案 0 :(得分:2)
怎么样:
<% if (myboolean) { %>
<img src="<%= Url.Content( "~/attention.gif" ) %>" alt="dates invalid" />
<% } %>
这对于一次性非常有效。如果你需要经常这样做,那么投资一个HtmlHelper扩展似乎是合理的,虽然你可以使用MVC Futures中的一个,只需使用style="display: none;"
的Html属性,并在不编写自己的情况下获得相同的效果。
答案 1 :(得分:2)
这个怎么样?
<% if (myBoolean) { %>
<%= Html.Image("myUrl", "altText") %>
<% } %>
答案 2 :(得分:1)
此代码不会创建隐藏元素。虽然这可能是你所需要的,但你应该意识到,如果你的应用程序逻辑决定你不能在客户端使用JS将其翻转为可见的暗示。
使用特殊的HtmlHelper来输出基于boolen的图像似乎有点矫枉过正。你需要以这种方式显示/隐藏多少张图像?如果它只是一个,请在您的视图中考虑这样的事情:
<% if (myboolean) { %>
<img src="<%= this.ResolveUrl("~/attention.gif") %> alt="dates invalid" />
<% } %>
答案 3 :(得分:1)
看起来不错,但我会改变
this.ResolveUrl("~/attention.gif")
到
HttpContext.Current.Server.MapPath(url)
辅助方法中的。这样你就可以打电话了
<%= Html.Image("~/attention.gif","dates invalid",myboolean) %>
看起来更好,你不必重复ResolveUrl。