什么是适当的ASP.NET风格?

时间:2010-07-14 21:03:58

标签: asp.net webforms coding-style

我刚开始用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的经验,所以如果对这段代码有更多的微妙之处,我不会抓住,无论如何都要启发!

5 个答案:

答案 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。