分析器错误消息

时间:2014-10-19 12:09:51

标签: asp.net sql-server c#-4.0


我的asp.net代码


<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:tdfConnectionString2 %>" SelectCommand="select * from answer,users where question_id="<%=Session["qid"]%>" and answer.user_id=users.user_id"></asp:SqlDataSource>
    <asp:Repeater ID="Repeater2" runat="server" DataSourceID="SqlDataSource1">
        <HeaderTemplate>
            <div class="container">
        </HeaderTemplate>
        <ItemTemplate>
           <div class="panel panel-primary">
               <div  class="panel-heading">

                   <h2 class="panel-title"><a href="Answer.aspx?qid=<%#Eval("question_id") %>"><asp:Label ID="Label2" runat="server" Text="Reply"></asp:Label></a></h2>
              </div><!--panel-heading-->
               <div class="panel-body">
                       <asp:Image ID="Image1" runat="server" ImageUrl='<%#Eval("uimg")%>' Height="100" Width="100" />
                   <asp:Label ID="Label1" runat="server" Text='<%#Eval("answer_detail") %>'></asp:Label>
                   <br />
                   <asp:Label ID="Label4" runat="server" Text='<%#Eval("username") %>'></asp:Label>
                   <br />
            </div><!--panel-heading-->
        </ItemTemplate>
    </asp:Repeater>

何时浏览应用程序

&#39; /&#39;中的服务器错误应用

分析器错误

描述:解析为此请求提供服务所需的资源时发生错误。请查看以下特定的解析错误详细信息并相应地修改源文件。

分析程序错误消息:服务器标记格式不正确。

来源错误:

  

第28行:第29行:第30行:
  &#34;   SelectCommand =&#34;从答案中选择*,用户在哪里   question_id =&#34;&LT;%=会话[&#34; QID&#34;]%GT;&#34;和   answer.user_id = users.user_id&#34;&GT;第31行:
   第32行:

     

源文件:/Admin/QuestionView.aspx行:30

版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.34212

1 个答案:

答案 0 :(得分:1)

您无法使用<%= ... %>设置服务器端控件的属性。内联表达式<% %>只能在aspx页面或用户控件的顶级文档级别使用,但不能嵌入到服务器控件的标记属性中(例如<asp:SqlDataSource... SelectCommand =<%= %> ..>)。

您无法在<%=Session["qid"]%>的控件中使用runat=server。这将不会被评估,因为这是一个服务器控制。您可以在代码隐藏或page_load事件中设置该值。

您需要在page_load事件中添加以下内容。

SqlDataSource1.SelectCommand = select * from answer,users where question_id=" + Session["qid"].ToString() + " and answer.user_id=users.user_id"

SqlDataSource1.ConnectionString = "<PUT_YOUR_Connectrin_String_Here>";

在aspx中更新SqlDataSource1,如下所示。

<asp:SqlDataSource ID="SqlDataSource1" runat="server"></asp:SqlDataSource>

这里已经解释过了 - Web Forms error message: "This is not scriptlet. Will be output as plain text"