Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.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# asp.net中的条件语句存在问题_C#_Asp.net - Fatal编程技术网

C# asp.net中的条件语句存在问题

C# asp.net中的条件语句存在问题,c#,asp.net,C#,Asp.net,我正在尝试在aspx页面中执行以下操作: <%@ Page Language="C#" EnableSessionSTate="true" ValidateRequest="False" Inherits="MyProject.CodeBehind.MYWF.SiteWF" MasterPageFile="~/_layouts/application.master" %> <asp:Content ID="Content5" ContentPlaceHolderID="Plac

我正在尝试在aspx页面中执行以下操作:

<%@ Page Language="C#" EnableSessionSTate="true" ValidateRequest="False" Inherits="MyProject.CodeBehind.MYWF.SiteWF" MasterPageFile="~/_layouts/application.master" %>
<asp:Content ID="Content5" ContentPlaceHolderID="PlaceHolderPageDescription" runat="server">
    <% if (!isOld) %>
    <% { %>
        <p>display this</p>
    <% } %>

</asp:Content>

展示这个

isOld是命名空间中提到的cs文件中的一个公共bool变量

但不幸的是,它给了我一个未知的错误

我可以在JSP中做类似的事情,但在谷歌搜索了一段时间后,我不太确定在ASP.NET中是否可以实现上述目标?(是缺少标记声明,还是必须自己编写整个标记库?)

谢谢

编辑:我刚刚收到一个未知错误。我感觉上面的代码要么语法错误,要么完全偏离了正确的轨道。我尝试了以下代码,没有出现错误,但bool变量始终为false:

<% #if !isOld %>
    <p> display this</p>
<% #endif %>

展示这个

在您的代码前端:

<%@ Page Language="C#" EnableSessionSTate="true" ValidateRequest="False" Inherits="MyProject.CodeBehind.MYWF.SiteWF" MasterPageFile="~/_layouts/application.master" %>
<asp:Content ID="Content5" ContentPlaceHolderID="PlaceHolderPageDescription" runat="server">
    <asp:PlaceHolder runat="server" id="PlaceHolderIsOld">
        <p>display this</p>
    </asp:PlaceHolder>
</asp:Content>
在代码前端:

<%@ Page Language="C#" EnableSessionSTate="true" ValidateRequest="False" Inherits="MyProject.CodeBehind.MYWF.SiteWF" MasterPageFile="~/_layouts/application.master" %>
<asp:Content ID="Content5" ContentPlaceHolderID="PlaceHolderPageDescription" runat="server">
    <asp:PlaceHolder runat="server" id="PlaceHolderIsOld">
        <p>display this</p>
    </asp:PlaceHolder>
</asp:Content>

那是什么错误呢?类似于:“无法修改控件集合”?如果是这样,那你就是运气不好。您需要停止正在修改控件的代码(通过在codebehind中的某个位置添加或删除一个控件),或使“display this”出现在
占位符中,并适当地设置它的
Visible
属性(这就是我要做的)。Re:您的编辑缺少一个括号:
应该是
(注意括号)。(编辑:事实上,也许不是,但我从未见过有人在完全不同的
区域中编写括号,这似乎很奇怪。这是什么错误?类似于:“无法修改控件集合”?如果是这样,那么你只是运气不好。你需要停止修改控件的代码(通过在codebehind中的某个位置添加或删除一个)或使“display this”出现在
占位符中,并适当地设置其
可见的属性(这就是我要做的)。Re:编辑时,缺少一个括号:
应该是
(注意括号)。(编辑:事实上,也许不是,但我从未见过有人在完全不同的
区域中编写括号,这似乎很奇怪。@AndreasKnudsen:代码背后的Placeholder Isold在哪里?我的代码背后继承System.Web.UI.Page,我没有页面加载方法。我似乎无论如何都无法访问Placeholder Isold。根据定义g代码前面的占位符,它将自动显示为可在代码后面使用。(Visual studio在*.designer.cs文件中生成代码)Asp.Net硬连接到使用反射在页面和用户控件中查找某些方法。如果您定义的方法具有上面代码中显示的签名,则Asp.Net将在“加载”时调用该方法页面生命周期的一部分。虽然有点神秘,特别是对于使用嵌套控件和母版页的高级站点,但非常值得学习:我最终做的事情与上面的代码类似:在服务器端设置所有内容。当满足某些条件时,我使项目/内容区域可见,等等,而不是使用asp语法。效果也不错。谢谢你的想法和图表。@AndreasKnudsen:占位符Isold在代码隐藏中的位置是什么?我的代码隐藏继承了System.Web.UI.Page,并且我没有页面加载方法。我似乎无论如何都无法访问占位符Isold。通过在代码前端中定义占位符,它将自动显示为可在您的codebehind中使用。(Visual studio在*.designer.cs文件中生成代码)Asp.Net硬连接到使用反射在页面和用户控件中查找某些方法。如果您使用上面代码中显示的签名定义方法,则Asp.Net将在“加载”时调用它页面生命周期的一部分。虽然有点神秘,特别是对于使用嵌套控件和母版页的高级站点,但非常值得学习:我最终做的事情与上面的代码类似:在服务器端设置所有内容。当满足某些条件时,我使项目/内容区域可见,等等,而不是使用asp语法也很好。谢谢你的想法和图表。