2011-11-26 9 views
11

Estoy usando plantillas jQuery para incrustar videos de YouTube publicados por usuarios. Puedo buscar la identificación del video y guardarla en la base de datos y todo está funcionando correctamente. Sin embargo cuando se trata de incrustar el vídeo con plantillas jQuery de la siguiente manera:Incrustar video de YouTube con plantillas jQuery - C#

{{if streamObj.TypeOf == 3}} 
      <object width="425" height="350" data='http://www.youtube.com/v/${VideoId}' type="application/x-shockwave-flash"> 
      <param name="src" value='http://www.youtube.com/v/${VideoId}' /></object> 
{{else}} 

me sale el siguiente error: "NetworkError: 404 Not Found - http://www.youtube.com/v/"

${VideoId} y streamObj.TypeOf retorno correctamente. Pero ese es el error. ¿Qué podría estar causando esto? Gracias.

+0

El mensaje de error que muestra la url de youtube no incluye la identificación del video ('http: // www.youtube.com/v /'). ¿Estás seguro de que el marcador de posición '$ {VideoId}' se reemplaza? –

+0

¿Estás seguro de que $ {VideoId} no es una cadena vacía? –

+3

abra Firebug o alguna otra consola de JavaScript para verificar si la URL se está generando después de que la página se haya cargado. su VideoId podría ser reiniciado en alguna parte. –

Respuesta

2

probar esto.

<object width="425" height="350" data='http://www.youtube.com/v/' + ${VideoId} type="application/x-shockwave-flash"> 
    <param name="src" value='http://www.youtube.com/v/' + ${VideoId} /> 
</object> 

O mejor.

var videoUrl = 'http://www.youtube.com/v/' + ${VideoId}; 

<object width="425" height="350" data=videoUrl type="application/x-shockwave-flash"> 
    <param name="src" value=videoUrl /> 
</object> 

creo que la etiqueta de plantilla en el código no se evalúa corretly debido al hecho de que la etiqueta de plantilla está configurada como parte de un valor de cadena JS.

0

que debe obtener el ${VideoId} de cuerda y utilizar una operación de cadena como

var videoIdString=${videoId}; 

var urlString='http://www.youtube.com/v/' + videoIdString ; 

Porque:

en esta página, nunca he visto $ {} utiliza entre comillas.

http://api.jquery.com/template-tag-equal/

lo que el código sería:

var videoIdString=${videoId}; 

<object width="425" height="350" data='http://www.youtube.com/v/'+videoIdString 
type="application/x-shockwave-flash"> 
<param name="src" value='http://www.youtube.com/v/'+videoIdString /></object>