C# Javascript警报破坏我的asp.NET Web应用程序的布局

C# Javascript警报破坏我的asp.NET Web应用程序的布局,c#,javascript,asp.net,css,C#,Javascript,Asp.net,Css,我知道有一个类似的问题,但那个答案并没有解决我的问题 这是我的应用程序的正常外观: 这就是当Javascript警告菜单项的宽度被拧紧后的样子,左边的紫色条在顶部添加了一个额外的部分: 这是我用来调用警报的代码: private void Alert(string msg) { Response.Write("<script language = 'javascript'>window.alert('" + msg + "')</script&g

我知道有一个类似的问题,但那个答案并没有解决我的问题

这是我的应用程序的正常外观:

这就是当Javascript警告菜单项的宽度被拧紧后的样子,左边的紫色条在顶部添加了一个额外的部分:

这是我用来调用警报的代码:

    private void Alert(string msg)
    {
        Response.Write("<script language = 'javascript'>window.alert('" + msg + "')</script>");
    }
@Sassyboy的更新:

前端:

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <asp:HiddenField Value="" ID="errorMessageHidden" runat="server"/>
    <script type="text/javascript">
        var alertMsg = document.getElementById('errorMessageHidden'); 
        if (alertMsg != null) alert(alertMsg); 
    </script>

这是因为响应。Write通常在页面的HTML之前呈现-查看页面的源代码


有更好的方法可以将Javascript添加到页面中,请查阅ClientScriptManager。

这是因为用户响应。Write通常在页面的HTML之前呈现-查看页面的源代码


有更好的方法可以将Javascript添加到页面中,请查阅ClientScriptManager。

Response.Write将添加到页面HTML之前的响应中,这将导致与您提到的问题类似的问题

可以通过多种其他方式实现您试图实现的功能。e、 g.您可以有一个隐藏字段hdnAlertMessage,并使用您想要提醒的消息设置其值。然后在客户端检查隐藏字段是否有值,然后警告该值

所以在服务器端

hdnAlertMessage.Value = message;
在你的客户方面

var alertMsg = document.getElementById('hdnAlertMessage');

if (alertMsg != null)
    alert(alertMsg.value);
或者类似的东西


编辑:AlertMsg to AlertMsg.value

Response.Write将添加到页面HTML之前的Response中,这将导致与您提到的问题类似的问题

可以通过多种其他方式实现您试图实现的功能。e、 g.您可以有一个隐藏字段hdnAlertMessage,并使用您想要提醒的消息设置其值。然后在客户端检查隐藏字段是否有值,然后警告该值

所以在服务器端

hdnAlertMessage.Value = message;
在你的客户方面

var alertMsg = document.getElementById('hdnAlertMessage');

if (alertMsg != null)
    alert(alertMsg.value);
或者类似的东西


编辑:AlertMsg到AlertMsg。值

看起来像是页眉中的空白或其他内容影响了整个页面。您是否可以在JS FIDLE或到演示的链接中包含更多的上下文?在或DTD声明上方包含元素会产生未定义的行为,这就是您得到的。不在响应流的开头插入元素怎么样。@Matt-Sry该页面没有链接,不能使用JS FIDLE,因为页面本身很好,当从我的C文件调用Alert方法时,它会产生问题。@Justing M.Keyes-我如何调用Alert方法,并将其插入标签后?看起来页眉中的空白或其他内容会影响整个页面。您是否可以在JS FIDLE或到演示的链接中包含更多的上下文?在或DTD声明上方包含元素会产生未定义的行为,这就是您得到的。不在响应流的开头插入元素怎么样。@Matt-Sry该页面没有链接,不能使用JS FIDLE,因为页面本身很好,当从我的C文件调用Alert方法时,它会产生问题。@Justing M.Keyes-我如何调用Alert方法,并将其插入标记后?Javascript可以从C代码中获取元素吗?因此,如果我想得到一个字符串hdnAlertMessage,我需要对它做什么呢?您可以使用服务器控件asp:HiddenField并在C代码中设置它的值,如上所示。然后在客户端,您可以编写javascript,它作用于DOM中呈现和可用的元素。请在上面的描述中查看我的更新版本,仍然不工作,没有弹出警报,请更正我所做的任何错误,因为您使用的是母版页,客户端上呈现的ID与errorMessageHidden稍有不同。它可能类似于MainContent\u errorMessageHidden。您可以通过右键单击并选择页面的查看源来检查这一点。在document.getElementById中使用该Id。最后,警报应该是alertMsg.value。查看我的编辑。那个工作伙伴,MainContent\u errormessage是否如您所说隐藏。Javascript可以从C代码中获取元素吗?因此,如果我想得到一个字符串hdnAlertMessage,我需要对它做什么呢?您可以使用服务器控件asp:HiddenField并在C代码中设置它的值,如上所示。然后在客户端,您可以编写javascript,它作用于DOM中呈现和可用的元素。请在上面的描述中查看我的更新版本,仍然不工作,没有弹出警报,请更正我所做的任何错误,因为您使用的是母版页,客户端上呈现的ID与errorMessageHidden稍有不同。它可能类似于MainContent\u errorMessageHidden。您可以通过右键单击并选择页面的查看源来检查这一点。在document.getElementById中使用该Id。最后,警报应该是alertMsg.value。看我的编辑。那个同事,是我的错
或者像你说的那样隐藏信息。下次我肯定会使用你的方法,这就是为什么投票结果会上升。然而,对于快速修复,sassboy的方法非常有用,无需更改大部分代码。我将在下次投票时使用您的方法,这就是为什么支持投票的原因。然而,对于快速修复,sassboy的方法非常有用,无需更改大部分代码。