簡體   English   中英

服務器標簽格式不正確

[英]Server Tag is not well formed

這真是太蠢了,但絕對讓我發瘋。

<input type="radio" name="OptGroup" id="<%#"rbEmail" + ((Action)Container.DataItem).ID %>" value="<%#((Action)Container.DataItem).ID %>" runat="server" /><label for="<%#"rbEmail" + ((Action)Container.DataItem).ID %>"><%#((Action)Container.DataItem).Action %></label>

我在這里做錯了! 我也嘗試過:

<input type="radio" name="OptGroup" id='<%#"rbEmail" + ((Action)Container.DataItem).ID %>' value='<%#((Action)Container.DataItem).ID %>' runat="server" /><label for='<%#"rbEmail" + ((Action)Container.DataItem).ID %>'><%#((Action)Container.DataItem).Action %></label>

<input type="radio" name="OptGroup" id="<%#'rbEmail' + ((Action)Container.DataItem).ID %>" value="<%#((Action)Container.DataItem).ID %>" runat="server" /><label for="<%#'rbEmail' + ((Action)Container.DataItem).ID %>"><%#((Action)Container.DataItem).Action %></label>

我特別不想使用asp.net單選按鈕,因為它在轉發器內部創建的GroupName存在問題。 我想使用一個裸露的單選按鈕並將其值綁定到我的數據源。

對您的html使用單引號。 例如:

<input type='radio' name='OptGroup' id='<%#"rbEmail" + ((Action)Container.DataItem).ID %>' value='<%#((Action)Container.DataItem).ID %>' runat='server' /><label for='<%#"rbEmail" + ((Action)Container.DataItem).ID %>'><%#((Action)Container.DataItem).Action %></label>

您需要訪問控制服務器端嗎? 如果沒有,請脫掉runat =“ server”,則無法將其數據綁定到服務器控件的ID屬性。 不確定是不是這個問題,因為那應該給你一個不同的錯誤

編輯:

這樣的東西應該適合您的目的。

<asp:Repeater runat="server">
    <ItemTemplate>
        <label><input type="radio" name="rbEmail" value='<%# ((Action)Container.DataItem).ID %>' /><%# ((Action)Container.DataItem).Action %></label>
    </ItemTemplate>
</asp:Repeater>

然后在回發中,您可以從Request.Form [“ rbEmail”]獲取值

編輯2:

經過全面測試的簡單頁面示例。

Default.aspx

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:Repeater ID="Repeater1" runat="server">
            <ItemTemplate>
                <label><input type="radio" name="rbEmail" value='<%# Container.DataItem %>' /><%# Container.DataItem %></label>
            </ItemTemplate>
        </asp:Repeater>
        <asp:Button ID="submit" runat="server" OnClick="submit_Click" Text="submit" />
    </form>
</body>
</html>

Default.aspx.cs

using System;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Repeater1.DataSource = new string[] { "Hello", "World" };
        Repeater1.DataBind();
    }

    protected void submit_Click(object sender, EventArgs e)
    {
        Response.Write(Request.Form["rbEmail"]);
    }
}

第一個是錯誤的,因為,正如您所懷疑的那樣,屬性值的雙引號和字符串文字周圍的雙引號使解析器感到困惑。

我無法終生看到第二個問題出了什么問題。 您是否也遇到同樣的“格式錯誤”錯誤?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM