您的aspx页面中的内联代码是一个好习惯吗?

mja*_*day 7 asp.net coding-style

如果我使用以下代码,我将无法右键单击后面的代码中的变量并重构(在本例中重命名)它们

<a href='<%# "/Admin/Content/EditResource.aspx?ResourceId=" + Eval("Id").ToString() %>'>Edit</a>
Run Code Online (Sandbox Code Playgroud)

我到处都看到这种做法,但对我来说这似乎很奇怪,因为如果我更改属性名称,我不再能够获得编译时错误.我首选的方法是做这样的事情

<a runat="server" id="MyLink">Edit</a>
Run Code Online (Sandbox Code Playgroud)

然后在后面的代码中

MyLink.Href= "/Admin/Content/EditResource.aspx?ResourceId=" + myObject.Id;
Run Code Online (Sandbox Code Playgroud)

我真的很想知道人们是否认为上述方法更好,因为这是我在流行的编码网站和博客(例如Scott Guthrie)上总是看到的,而且它的代码较小,但我倾向于使用ASP.NET,因为它是编译的我更喜欢知道某些东西在编译时是否被破坏,而不是运行时间.

Kil*_*fer 4

我不会称其为不好的做法(有些人会不同意,但为什么他们首先给我们这个选择?),但我想说,如果您不遵守这种做法,您将提高整体可读性和可维护性。您已经表达了一个很好的观点,那就是 IDE 功能限制(即设计时检查、编译时警告等)。

我可以继续谈论它违反了多少原则(代码重用、关注点分离等),但我可以想到许多应用程序几乎打破了所有原则,但几年后仍然可以工作。我个人更喜欢使我的代码尽可能模块化和可维护。