Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/01/2007, 09:05
Avatar de Bravenap
Bravenap
 
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 22 años, 2 meses
Puntos: 4
Conflicto entre etiqueta <base> y formulario web

Buenas. Estaba creando un montón de páginas partiendo de un diseño genérico en una plantilla. Todas estas páginas no tenían codebehind y, por lo tanto, no había formularios de ida y vuelta. Como iba a ponerlas por diferentes directorios y varios niveles resolví poner una etiqueta base de modo que no tuviera que ir modificando los enlaces a las hojas de estilo y a los scripts cada vez que subiera o bajara una página por los distintos niveles de directorios.

Cuando, usando la misma plantilla básica, he necesitado crear una página que sí llevaba codebehind me he encontrado con que la etiqueta base de HTML hace que el formulario no apunte bien.

Con un ejemplo quedará más claro.

Asesoria.aspx
Código:
<%@ Register TagPrefix="controles" TagName="pie" Src="~/controles/Pie.ascx" %>
<%@ Register TagPrefix="controles" TagName="cabecera" Src="~/controles/Cabecera.ascx" %>
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="Asesoria.aspx.vb" Inherits="Includes.Asesoria" smartNavigation="True"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<HTML>
	<HEAD>
		<title>Título de la página</title>
		<base href="http://www.dominio.com" />
		<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
		<meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
		<meta content="JavaScript" name="vs_defaultClientScript">
		<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
		<LINK href="/estilos/style.css" type="text/css" rel="stylesheet">
                          <script language="javascript" src="/controles/menu.js" type="text/javascript"></script>
	</HEAD>
	<body>
		<form id="Form1" method="post" runat="server">
			<controles:cabecera id="cabecera" runat="server"></controles:cabecera>
.....
Si pongo la página en el directorio principal no hay problema, toma bien las hojas de estilo y el javascript y cuando hace un postback lo hace a www.dominio.com/Asesoria.aspx.

Sin embargo, si la página la coloco en ww.dominio.com/servicios/Asesoria.aspx muestra bien la hoja de estilos y el javascript pero no hace bien el postback, que lo manda a www.dominio.com/Asesoria.aspx.

Probé a quitar la etiqueta base y muestra la hoja de estilos y hace el postback pero no ejecuta las funciones javascript.

¿Qué puedo hacer para no tener que preocuparme del directorio en el que lo pongo?

Gracias y un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!