iamvinod34 Ответов: 1

Asp.net элементы управления недоступны в коде позади в asp .net web forms


Asp.net элементы управления недоступны в коде позади
<asp:TextBox id="txtname" class="form-control"  runat="server"></asp:TextBox>

1 Ответов

Рейтинг:
9

Alexandre Paula

проверьте этот пример и посмотрите, не пропало ли у вас что-то:

index.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="ProjectName.index" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <%--<input runat="server" type="text" id="txtName" />--%>
            <asp:TextBox runat="server" ID="txtusername" />
            <button type="submit">submit</button>
        </div>
    </form>
</body>
</html>


и серверный код в нем index.aspx.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace ProjectName
{
    public partial class index : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //RegisterError(txtName.Value.Trim());
            RegisterError(txtusername.Text.Trim());
        }

        private void RegisterError(string MsgError)
        {
            if (MsgError.Length > 0)
            {
                Page.ClientScript.RegisterStartupScript(this.GetType(), "ShowErrorMessage", "alert('" + MsgError.Replace("'", "").Replace("\r\n", "") + "');", true);
            }
        }
    }
}


Richard Deeming

Те .Replace звонки должны быть заменены на HttpUtility.JavaScriptStringEncode если вы хотите избежать XSS.
Page.ClientScript.RegisterStartupScript(this.GetType(), "ShowErrorMessage", "alert(" + HttpUtility.JavaScriptStringEncode(MsgError, true) + ");", true);