以编程方式设置输出的最佳做法?

时间:2011-08-09 17:41:13

标签: c# asp.net user-controls

我一直在使用ASP.Net一段时间,但我对输出内容的基本方式有疑问,如错误信息。

我看到两个主要的选择:

  • 使用用户控件并在代码隐藏中设置内容。

    <asp:Literal id="litError" runat="server" />
    

    Codebehind:

    litError.Text = "You're doing it wrong!";
    
  • 在代码隐藏中设置成员变量并输出它。

    protected string errorMessage;
    ...
    if(error)
       errorMessage = "You're doing it wrong!";
    

    ASPX:

    <%: errorMessage %>
    

哪种方式是最佳做法?这只是个人偏好,使用哪种方法? 我知道在某些情况下可能无法使用其中一种或另一种方法,但我说的是两种方法都可行的情况。

有哪些优点和缺点?是否有第三种方式应该首选?

我总是使用usercontrol方法,但是在ASP.Net 4.0中引入了新的nugget语法,我开始认为我可能走错了路。

4 个答案:

答案 0 :(得分:2)

我认为没有正确的方法可以做到这一点,它们都是完全有效的选择。它们最终都是页面类的属性。文字控件是一个服务器控件,因此有一些属性和方法可能对您作为页面开发人员有用,但这可以根据具体情况而定。

答案 1 :(得分:1)

我认为这只取决于偏好。就个人而言,我不喜欢将内联代码与代码混合在一起,所以我总是(在可能的情况下)更喜欢使用后面的代码进行编程输出。从业务角度来看,我认为内联和代码的混合破坏了一致性,使代码更难以为下一个人学习。我会一直投票支持一致性。

那只是我的两分钱。希望它有所帮助。

答案 2 :(得分:0)

我认为这在很大程度上归结为偏好。除了语法之外,两种常用方法之间没有真正的区别。

答案 3 :(得分:0)

两者之间存在细微的差别,因为一个在后面的代码中运行并填充服务器控件,另一个是对后面的代码方法的引用。根据您的编码技术,代码运行时可能会有差异。 但是,就最佳做法而言?像其他人的回答一样,它归结为偏好。