2012-07-10 5 views
1

컴파일시 다음 오류 메시지가 계속 나타납니다. '이름'메시지 '가 현재 컨텍스트에 없습니다. " 내가하려는 것은 메시지 상자를 팝업하는 것뿐입니다. 내 코드는 버튼 클릭에 메시지 보여주기 위해 여기에이름 'Message'가 현재 컨텍스트에 없습니다.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Net.Mail; 

을 : 그리고 여기 내 네임 스페이스 페이지 뒤에 내 코드의 상단에 선언

protected void EmailAbout_Click(object sender, EventArgs e) 
    { 
     MailMessage myMessage = new MailMessage(); 
     myMessage.Subject = "Exception Handling Test"; 
     myMessage.Body = "Test message body"; 
     myMessage.From = new MailAddress("[email protected]"); 
     myMessage.To.Add(new MailAddress("[email protected]")); 

     SmtpClient mySmtpClient = new SmtpClient(); 
     mySmtpClient.Send(myMessage); 
     Message.Text = "Message sent"; 
    } 

을이 누락 된 네임 스페이스의 경우인가 ? 그것은 너무 기본적인 것 같지만 아직 이해할 수 없습니까? 미리 감사드립니다! 여기

은 마크 업 페이지입니다 :

<%@ Page Title="About SalesPro" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" 
CodeBehind="About.aspx.cs" Inherits="WebApplication2.About" %> 

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"> 
</asp:Content> 

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> 
    <h2> 
     About, Inc. 
    </h2> 

    <p> 
     Some Stuff here... 
    </p> 

    <p> 
     <asp:Button ID="EmailAbout" runat="server" Text="Email Information" 
      onclick="EmailAbout_Click" /> 
    </p> 
</asp:Content> 
+0

인가? –

+2

'메시지'란 무엇입니까? –

+0

페이지에'Message'라는 컨트롤이 있습니까? – vcsjones

답변

0

을 javaScript-function "alert()":-)

시험해보기 :

RegisterStartupScript("alertBox1", "<script type='text/javascript'>alert('Message sent');</script>"); 
+0

이 작품과 아마 최고의 멀티 클라이언트 방법이지만, 나는 자바 없이는 그것을 빠뜨리고 무엇 궁금 해서요? –

+0

JavaScript는 브라우저에서 대화 형 상자 또는 다른 것을 팝업 할 수있는 유일한 방법입니다. 또는 레이블이나 텍스트 상자를 사용하여이 결과를 보낼 수 있습니다. 즉 JavaScript 없이도 작동합니다. – MaxKlaxxMiner

+0

klicked 버튼에 답을 표시하는 예 : EmailAbout.Text = "Mail Sent"; – MaxKlaxxMiner

1

내가 레이블 메시지가 런타임에 사용할 수 없습니다 생각하거나하지

업데이트 대답 존재 않습니다 당신은 필요

Response.Write("<script>alert('Message Sent');</script>"); 
+2

라벨인지 어떻게 알 수 있습니까? – jrummell

+0

bcz 레이블에 텍스트 속성이 있습니다. 전자 메일을 보낸 후 사용자가 "메시지를 보냈습니다"라는 메시지가 나타납니다. 그래서 나는 그것을 추측한다. 투표를 할 필요가 없습니다. –

+0

그것은 내가 본 레이블이 아니었지만 화면에 팝업 메시지를 표시했습니다. –

1

처음에 오른쪽 마우스를 클릭하여 참조 번호 System.Windows.Forms을 입력 한 다음 바꾸십시오. 이 도움이

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Net.Mail; 
using System.Windows.Forms; 

희망

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Net.Mail; 

.

0

필자의 경우 필자는 네임 스페이스를 필요로하는 C# (.cs) 파일에 직접 배치하여이 문제를 해결했습니다. 어떤 이유로 Intellisense를 사용하여 네임 스페이스를 픽업 할 수 있었지만 app_code에 추가하는 것이 작동하지 않았습니다. 이 웹 응용 프로그램

using System; 
using System.Collections.Generic; 
using System.Data; 
using System.Configuration; 
using System.Text; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; 

public partial class SmartFutures_Default : System.Web.UI.Page 
{ 
... 
... 
    webMessageBox.Show("THANK YOU. YOUR REGISTRATION HAS BEEN SUBMITTED"); 
... 
} 

/// <summary> 
/// A JavaScript alert class 
/// </summary> 
public static class webMessageBox 
{ 

    /// <summary> 
    /// Shows a client-side JavaScript alert in the browser. 
    /// </summary> 
    /// <param name="message">The message to appear in the alert.</param> 
    public static void Show(string message) 
    { 
     // Cleans the message to allow single quotation marks 
     string cleanMessage = message.Replace("'", "\\'"); 
     string wsScript = "<script type=\"text/javascript\">alert('" + cleanMessage + "');</script>"; 

     // Gets the executing web page 
     Page page = HttpContext.Current.CurrentHandler as Page; 

     // Checks if the handler is a Page and that the script isn't allready on the Page 
     if (page != null && !page.ClientScript.IsClientScriptBlockRegistered("alert")) 
     { 
      //ClientScript.RegisterStartupScript(this.GetType(), "MessageBox", wsScript, true); 
      page.ClientScript.RegisterClientScriptBlock(typeof(webMessageBox), "alert", wsScript, false); 
     } 
    } 
} 
관련 문제