none
Se puede poner meta tags en un partial view RRS feed

  • Pregunta

  • Hola, estoy en un proyecto de asp.net mvc3 con c#. En una vista tengo un <ul> y mediante javascript llamo a un metodo que devuelve un partial view con los <li> y se los meto a ese <ul>. Lo hago de esta manera porque no tengo ni idea cuantos elementos <li> deberia crear, entonces los hago con un foreach. Bueno esto funciona perfectamente, el problema es que ahora debo poner una barra de botones de addthis para compartir en cada elemento <li>. Estos elementos <li> Pueden ser imagenes o texto, yo solo les pongo la barra de addthis si son imagenes. A traves del addthis:url le paso la url de la imagen (Esto funciona bien). Y se comparte como un enlace.

    Ahora en facebook, para que tome el screenshot, el titulo y descripcion hay que agregar meta tags en los que pongo la url de la imagen, el titulo, etc. Asi que ahora surgen dos problemas:

    1. Puedo poner estos meta tags en un partial view, teniendo en cuenta que el partial son solo elementos <li>.

    2. Los elementos que van en el meta tag los obtengo dentro del li, es decir, no son estaticos y no que los voy obteniendo del model del partial.

    Mi partial seria mas o menos asi:

    @Model List<Foo>
    
    @foreach (var item in Model) {
       <li>
           <div>
               @if(esImagen) {
                   //Muestro la imagen
                   //Pongo la barra de addthis
               }
               else {
                   //Muestro el texto
               }
           </div>
       </li>
    }
    El problema es como incluyo los meta tags para facebook, si los valores que deben tener los obtengo de cada item.

    miércoles, 23 de enero de 2013 14:59

Todas las respuestas

  • Simplemente agregue una sección a su página maestra dentro del <head> que sea opcional y listo.

        <head>
            <meta charset="utf-8" />
            <title>@ViewBag.Title - Personal Productivity Portal</title>
            <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
            <meta name="viewport" content="width=device-width" />
            @RenderSection("MetaTags", false)
        </head>

    Ahora puede crear los meta tags desde un view:

    @section MetaTags
    {
        @foreach (var item in Model)
        {
            <meta name="@blah" content="@masBlah" />
        }
    }


    Jose R. MCP
    Code Samples

    miércoles, 23 de enero de 2013 15:25
  • @webJose

    Ojo!!! Las partial views no tienen soporte para secciones. No sé exactamente la causa, pero es así (al menos en MVC4).

    Pero si puedes usar secciones si las usas desde la vista principal (no la partial). Dices que los datos los tomas de los elementos, pero los elementos los renderizas a partir de los datos del viewmodel (.Model) de la vista, y al viewmodel tienes acceso desde la vista principal, no?

    Saludos!


    Eduard Tomàs Blog: http://geeks.ms/blogs/etomas -- Twitter: eiximenis

    viernes, 25 de enero de 2013 12:31