标签: webforms

了解 ASP .NET (WebForms) 中的错误处理

我有一个 Web 表单 (.NET 4.0) Web 应用程序,构建为:

  • MyApp.Portal(包含页面、WCF AJAX 服务、脚本等的主门户)
  • MyApp.BusinessLayer(类库调用DataAccess获取数据)
  • MyApp.Services(类库包含用于服务器端代码的 WCF 服务器)
  • MyApp.DataAccess(ADO Oracle)

    我正在尝试遵循一些有关错误处理的教程,但到目前为止我得到的结果不一致。

    我的问题是我应该如何处理应用程序中的错误?
    我应该将所有方法包装在 try/catch 中吗?
    我应该用 try/catch 将方法包装在业务层中吗?
    如何使用 WCF Ajax 方法处理 PortalLayer 中发生的错误?

    例如,我将以下内容添加到 Global.asax 文件中:

    void Application_Error(object sender, EventArgs e)
            {
                // Code that runs when an unhandled error occurs
                Exception exc = Server.GetLastError();
    
                if (exc is HttpUnhandledException)
                {
                    if (exc.InnerException != null)
                    {
                        exc = new Exception(exc.InnerException.Message);
                        Server.Transfer(@"\Pages\Error.aspx?handler=Application_Error%20-%20Global.asax", true);
                    }
                }
    
            }
    
    Run Code Online (Sandbox Code Playgroud)

    然而大多数时候这不会被调用。我只是看到屏幕上显示错误消息(就像美化的警报)。
    或者,如果调用此方法,则 exc 不是 HttpUnhandledException,因此传输永远不会发生。

    我也在我的 web.config 中尝试过这个,但我没有看到这有什么作用。(如果我注释掉它,我会得到相同的结果)

    <customErrors …
    Run Code Online (Sandbox Code Playgroud)
  • .net c# asp.net error-handling webforms

    3
    推荐指数
    1
    解决办法
    5731
    查看次数

    我应该处置 FileUpload.PostedFile.InputStream 吗?

    是否需要此代码,或者因为页面的 UnLoad 事件会处置页面上的所有控件,所以编写此类代码是没有意义的:

    fu.PostedFile.InputStream.Flush();
    fu.PostedFile.InputStream.Close();
    fu.FileContent.Dispose();    
    
    Run Code Online (Sandbox Code Playgroud)

    我问这个问题是因为在msdn的示例中我看到他们编写的代码如下

    FileUpload1.SaveAs(savePath);
    
    Run Code Online (Sandbox Code Playgroud)

    但之后不要费心处理流,但我看到有些人在保存后明确处理输入流?

    c# asp.net dispose webforms file-upload

    3
    推荐指数
    1
    解决办法
    2977
    查看次数

    Html 必需属性设置为非必需

    我有一些代码如下:

    <label class="control-label col-sm-4" for="datepicker">Date of Birth</label>
    <div class="col-sm-8" ><input class="form-control col-sm-10" type="text" id="datepicker" name="datepicker" required="true" value="<?php if(isset($_SESSION['DOB'])) echo $_SESSION['DOB'] ?>"></div>
    
    Run Code Online (Sandbox Code Playgroud)

    我的问题是我不希望这个“出生日期”字段再成为必填字段。如何将该字段设置为非必填?

    我尝试过设置,required="false"但这不起作用。

    非常感谢任何建议,非常感谢让-克洛德

    html webforms

    3
    推荐指数
    1
    解决办法
    3万
    查看次数

    如何在asp.net webform中正确加密Viewstate

    我正在使用 asp.net webform 网站,该网站使用 4.5 框架和 vunrability 扫描仪将 viewstate 显示为Unencrypted __VIEWSTATE parameter

    即使我使用机器密钥它仍然标记它

     <machineKey validationKey="xxxxxxxxxxxx" decryptionKey="xxxxxxxxxxxx" validation="SHA1" decryption="AES" />
    
    Run Code Online (Sandbox Code Playgroud)

    这就是在 asp.net webform 4.5 中对 viewstate 进行加密的方式吗

    asp.net encryption viewstate webforms

    3
    推荐指数
    1
    解决办法
    9615
    查看次数

    ASP.NET如何解析页面?

    我正在寻找一篇文章,深入探讨ASP.NET的工作原理以及它如何从XML标记中呈现控件.例如,在幕后,ASP.NET如何采用以下标记并让它产生我们看到的结果?

    <asp:Label ID="MyLabel"><%= myObject.Text%></asp:Label>
    Run Code Online (Sandbox Code Playgroud)

    有没有人知道任何会深入探讨ASP.NET内部工作的文章?

    asp.net webforms

    2
    推荐指数
    1
    解决办法
    3074
    查看次数

    可以声明性地设置TextBox文本吗?

    我试图以声明方式将TextBox控件的Text属性设置为变量的值.我发现将设置text属性的唯一方法是将其放在代码隐藏页面中,这是我想要避免的.

    我试图做以下所有事情,但没有成功:

    <asp:TextBox ID="myTxt" runat="server" Text='<%# MyNamespace.MyClass.StaticString %>' />
    <asp:TextBox ID="myTxt" runat="server" Text='<%= MyNamespace.MyClass.StaticString %>' />
    <asp:TextBox ID="myTxt" runat="server" Text='<% Response.Write(MyNamespace.MyClass.StaticString); %>' />
    <asp:TextBox ID="myTxt" runat="server" /><% myTxt.Text = MyNamespace.MyClass.StaticString; %>
    
    Run Code Online (Sandbox Code Playgroud)

    这是否可能,如果是这样,怎么样?

    c# asp.net webforms

    2
    推荐指数
    1
    解决办法
    1006
    查看次数

    如何通过Javascript更改输入类型占位符持有者属性?

    我正在使用适用于iPhone的简单HTML5格式,我想使用Placeholder属性在文本字段中显示错误警报,但我不知道如何通过Javascript访问它.

    这是一个字段示例HTML代码:

    我希望占位符文本(也许是颜色?)会在表单调用之前调用javascript Validate函数,但无论我尝试什么样的概念,我都无法改变它.

    谢谢!

    javascript html5 webforms

    2
    推荐指数
    1
    解决办法
    7703
    查看次数

    什么是适当的ASP.NET风格?

    我刚刚开始用ASP做网页,所有的代码都感觉......很乱.

    <% if (new Random().NextDouble() < 0.5) { %>
        <asp:Image ID="image" runat="server" ImageUrl="~/1.jpg" />
    <% } else { %>
        <asp:Image ID="image" runat="server" ImageUrl="~/2.jpg" />
    <% } %>
    
    Run Code Online (Sandbox Code Playgroud)

    目前,我有一个非常基本的页面内容,但最终我将不得不添加逻辑和更多的显示元素.所以我来找你,所以.

    首先,我将如何清理这一小段代码?第二,我需要知道什么?

    编辑:asp:Image从VS2008生成的标签,然后我添加了if基于我在网上找到的块.我有很多使用C#的经验,但绝对没有使用ASP的经验,所以如果对这段代码有更多的微妙之处,我不会抓住,无论如何都要启发!

    asp.net webforms coding-style

    2
    推荐指数
    1
    解决办法
    183
    查看次数

    如何在PHP中停止浪费时间

    作为程序员,我喜欢开发算法.我喜欢解决问题并找出一个干净,高效,可读,优雅的解决方案.然而,我似乎发现,我的大部分时间都用于验证和清理表单数据,并将其传递以准备各种SQL语句.也许这就是"它的方式",但我怀疑我可能做错了.

    您如何避免无休止地验证输入和构建数据库交互的死亡陷阱?你使用第三方图书馆吗?写自己的图书馆?或者这就是它的方式?

    php webforms

    2
    推荐指数
    1
    解决办法
    174
    查看次数

    JSF和f:用于隐藏/显示div的ajax

    我正在考虑在我的Web应用程序上创建一个隐藏/可显示的菜单.在此之前,我为此目的广泛使用PHP和AJAX.但是,由于HTML元素id在JSF框架中重新生成,我发现这种方法至少在我的范围内不再可行.

    我在JSF中读过f:ajax标签并尝试实现它.显然没有运气给我.它看起来很容易,但我仍然无法找出我做错了什么.

    我准备了一个原型来测试f-ajax标签功能,但没有运气.这是代码

       ` <h:body>
         <h:outputLabel>
            <h:outputText value="Click A" />
            <f:ajax event="click" render="textA"/>
        </h:outputLabel>
        <h:outputLabel>
            <h:outputText value="Click B" />
            <f:ajax event="click" render="textB"/>
        </h:outputLabel>
        <h:outputLabel>
            <h:outputText value="Click C" />
            <f:ajax event="click" render="textC"/>
        </h:outputLabel>
    
        <h:outputText id="textA" value="Click A" />
        <h:outputText id="textB" value="Click B" />
        <h:outputText id="textC" value="Click C" />
        </h:body>`
    
    Run Code Online (Sandbox Code Playgroud)

    当我点击特定标签时,没有任何事情发生.textA,textB和textC元素已经在第一时间呈现.我做错了什么人?

    提前致谢.

    java ajax jsf webforms java-ee

    2
    推荐指数
    1
    解决办法
    8518
    查看次数