FlieUpload dentro de un MultiView y un UpdatePanel


En un desarrollo en el cual estaba involucrado era necesario subir archivos al servidor pero me encontré con el problema que al colocar un FileUpload dentro de un MultiView y este a su vez dentro de un UpdatePanel que la propiedad  PostedFile al hacer PostBack siempre era Null.

Había conseguido poder colocar dentro de un UpdatePanel un control FileUpload y colocando un trigger en el UpdatePanel haciendo referencia al boton que ejecutará la acción de subir el archivo, era suficiente.

    <asp:UpdatePanel runat="server" ID="upSubirArchivo">

        <ContentTemplate>

<asp:FileUpload runat="server" ID="btnFlUpl"/>

<asp:Button ID="btnArchivo " OnClick="btnArchivo _Click" runat="server" Text="subir" />

  </ContentTemplate>

        <Triggers>

            <asp:PostBackTrigger ControlID="btnArchivo" />

        </Triggers>

    </asp:UpdatePanel>

Pero el problema surgio cuando trate de colocar el FileUpload dentro de un MultiView y ni le busquen tratando de ocupar el asp:panel por que es lo mismo.

    <asp:UpdatePanel runat="server" ID="upSubirArchivo">

        <ContentTemplate>

            <asp:MultiView ID="mvArchivo" runat="server" ActiveViewIndex="0">

            <asp:View ID="viewLiteal" runat="server">

<asp:FileUpload runat="server" ID="btnFlUpl"/>

<asp:Button ID="btnArchivo " OnClick="btnArchivo _Click" runat="server" Text="subir" />

</asp:View>

        </ContentTemplate>

        <Triggers>

            <asp:PostBackTrigger ControlID="btnArchivo" />

        </Triggers>

    </asp:UpdatePanel>

La solución fue modificando la propiedad Enctype del form a multipart/form-data entonces tan sencillo como colocar

form1.Enctype = "multipart/form-data";

pero que tal si estamos dentro de una página que contiene una MasterPage pues simple hagamos un FindControl

((System.Web.UI.HtmlControls.HtmlForm)this.Page.Master.FindControl("form1")).Enctype = "multipart/form-data";