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";
1eb7143e-7f0a-4117-b6d2-b7281dfd4b41|0|.0