Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Eval和If语句C重构aspx页面#_C#_Asp.net_Refactoring - Fatal编程技术网

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

C# 使用Eval和If语句C重构aspx页面#,c#,asp.net,refactoring,C#,Asp.net,Refactoring,我想知道是否有更好的方法来编写这段代码 <%#Eval("hasAccess").Equals(true) ? "<a href='/CaseActivities.aspx?" + Eval("caseURL") + "'>" + Eval("caseName") + "</a>" : Eval("caseName")%> 我尝试了您几乎可以肯定应该在代码隐藏中执行此操作,而不是在scriptlet中。在数据绑定的情况下,有几个选项: 与其将这些操作作

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

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


我尝试了您几乎可以肯定应该在代码隐藏中执行此操作,而不是在scriptlet中。在数据绑定的情况下,有几个选项:

  • 与其将这些操作作为数据绑定的一部分来执行,不如在绑定基础数据源之前对其进行更改,以便数据绑定本身只按原样获取值

  • 向代码中添加一个方法,该方法接受该列并返回正确的值,这样数据绑定方法只需要对传递该列的方法求值

  • 如果标记很复杂,不要在标记中进行数据绑定;在代码隐藏中使用数据绑定事件(如果可用)


  • 它们是按照您应该尝试使用它们的优先顺序列出的。

    您几乎可以肯定应该在代码隐藏中而不是在Scriptlet中这样做。在数据绑定的情况下,有几个选项:

  • 与其将这些操作作为数据绑定的一部分来执行,不如在绑定基础数据源之前对其进行更改,以便数据绑定本身只按原样获取值

  • 向代码中添加一个方法,该方法接受该列并返回正确的值,这样数据绑定方法只需要对传递该列的方法求值

  • 如果标记很复杂,不要在标记中进行数据绑定;在代码隐藏中使用数据绑定事件(如果可用)


  • 这些都是按照您应该尝试使用它们的优先顺序列出的。

    “我想知道是否有更好的方法来编写此代码”是的,使用codebehind。这是ASP.NET MVC很容易做到的事情,只是FYI@dferraro这是ASP.NET很容易做到的事情,如果你不试着像Tim建议的那样在标记中做的话。“我想知道是否有更好的方法来编写此代码“是的,使用codebehind.ASP.NET MVC很容易做到这一点,只是FYI@dferraro这是ASP.NET很容易做到的事情,如果你不尝试像Tim建议的那样在标记中做的话。。我以前很懒。谢谢你的一脚踢在屁股上。在代码隐藏中重新编写。。我以前很懒。谢谢你踢我屁股。
    <% If Eval("hasAccess") %>
    do stuff .. 
    <% else %>
    do other stuff.