使用Eval和If语句C#重构aspx页面

时间:2013-01-29 22:25:14

标签: c# asp.net refactoring

我很想知道是否有更好的方法来编写这段代码。

<%#Eval("hasAccess").Equals(true) ? "<a href='/CaseActivities.aspx?" + Eval("caseURL") + "'>" + Eval("caseName") + "</a>" : Eval("caseName")%> 

我试过&lt;%If(Eval(“hasAccess”)...但是asp.net并不喜欢这样:)

我希望像

这样的东西
<% If Eval("hasAccess") %>
do stuff .. 
<% else %>
do other stuff.

但是当使用带有IF的Eval时,它会变得混乱......有什么想法吗?

1 个答案:

答案 0 :(得分:4)

你几乎肯定会在代码中执行此操作,而不是在scriptlet中执行此操作。在数据绑定的情况下,有几个选项:

  1. 不是将这些操作作为数据绑定的一部分执行,而是在绑定之前更改基础数据源,以便数据绑定本身仅按原样获取值。

  2. 在后面的代码中添加一个方法,该方法获取列并返回正确的值,这样数据绑定方法只需要通过该列调用该方法的调用。

  3. 如果标记复杂,请不要在标记中进行数据绑定;在后面的代码中使用数据绑定事件(如果可用)。

  4. 这些按优先顺序列出,您应该尝试使用它们。