我刚开始用ASP做网页,而且所有的代码都感觉......很乱。
<% if (new Random().NextDouble() < 0.5) { %>
<asp:Image ID="image" runat="server" ImageUrl="~/1.jpg" />
<% } else { %>
<asp:Image ID="image" runat="server" ImageUrl="~/2.jpg" />
<% } %>
目前,我有一个非常基本的内容页面,但最终我将不得不为此添加逻辑和更多显示元素。所以我来找你,那么。
首先,我将如何清理这一小段代码? 第二,我今后需要知道什么?
编辑: asp:Image
代码是从VS2008生成的,然后根据我在网上找到的内容添加了if
个版块。我有很多使用C#的经验,但绝对没有使用ASP的经验,所以如果对这段代码有更多的微妙之处,我不会抓住,无论如何都要启发!
答案 0 :(得分:8)
在标记中:
<asp:Image ID="image" runat="server" />
在代码隐藏中:
...
if (new Random().NextDouble() < 0.5)
{
image.ImageUrl = "~/1.jpg";
}
else
{
image.ImageUrl = "~/2.jpg";
}
答案 1 :(得分:3)
在您的具体情况下,
<asp:Image ID="image" runat="server"
ImageUrl='~/<%= new Random().Next(1,3) %>.jpg' />
但总的来说,选择在代码后面或在标记中做事是你必须做出的选择。您可能会喜欢Razor,这是一种在标记代码中执行的新方法。我自己还没试过,但它看起来有点干净。
答案 2 :(得分:2)
内联if语句怎么样?这允许您在1行而不是5
中操作imageUrl <asp:Image ID="image" runat="server" ImageUrl='<%= (new Random().NextDouble() < 0.5) ? "~/1.jpg" : "~/2.jpg" %>' />
至于你的第二个问题..对于.NET来说有很多东西,你需要知道它的大部分内容。看看一些设计模式(MVC是我最喜欢的)
答案 3 :(得分:0)
ASP.NET WebForms有点乱。这是它的一个缺点,以及ViewState和相当复杂的事件模型。如果您希望使用更清洁的平台来开发网站,我建议ASP.NET MVC。
答案 4 :(得分:0)
更好的是,尝试在页面标记中尽可能少地编写代码,并在页面加载事件或其他方法中设置图像的ImageUrl。