<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://geeks.ms/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>El blog de Javier Torrecilla : MVC</title><link>http://geeks.ms/blogs/jtorrecilla/archive/tags/MVC/default.aspx</link><description>Etiquetas: MVC</description><dc:language /><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><item><title>[MVC] Editando Colleciones con un Template</title><link>http://geeks.ms/blogs/jtorrecilla/archive/2012/07/04/mvc-editando-colleciones-con-un-template.aspx</link><pubDate>Wed, 04 Jul 2012 04:48:49 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:205963</guid><dc:creator>Javier Torrecilla</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/jtorrecilla/rsscomments.aspx?PostID=205963</wfw:commentRss><comments>http://geeks.ms/blogs/jtorrecilla/archive/2012/07/04/mvc-editando-colleciones-con-un-template.aspx#comments</comments><description>&lt;h1&gt;Introduccion&lt;/h1&gt;  &lt;p&gt;El otro día el Gran Eduard (@Eiximenis) me resolvió una duda que tenia acerca del modelBinder y el potente enlace de datos que presenta ASP.NET MVC.&lt;/p&gt;  &lt;p&gt;Ha raíz de este &lt;a href="http://geeks.ms/blogs/etomas/archive/2012/07/01/asp-net-mvc-edici-243-n-de-colecciones-usando-ajax.aspx"&gt;post&lt;/a&gt; y del comentario de “ar7uro”, en el que planteaba la posibilidad de evitar las llamadas al servidor para ir agregando elementos a la colección.&lt;/p&gt;  &lt;h1&gt;Como resolverlo&lt;/h1&gt;  &lt;p&gt;Podríamos definir una variable javascript donde escribiéramos todo el código o hacerlo a través de la obtención del Html de la vista. Yo me he decantado por esta segunda versión.&lt;/p&gt;  &lt;p&gt;Así que partiendo del ejemplo de Eduard, vamos a realizar algunos cambios:&lt;/p&gt;  &lt;p&gt;- Dentro de la vista parcial:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;@model MvcApplication5.Models.Direccion&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&amp;lt;div &lt;span class="kwrd"&gt;class&lt;/span&gt;=&lt;span class="str"&gt;&amp;quot;editor-label&amp;quot;&lt;/span&gt;&amp;gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    @Html.LabelFor(model =&amp;gt; model.Calle)&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&amp;lt;/div&amp;gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&amp;lt;div &lt;span class="kwrd"&gt;class&lt;/span&gt;=&lt;span class="str"&gt;&amp;quot;editor-field&amp;quot;&lt;/span&gt;&amp;gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;    @Html.Editor(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;&amp;quot;{0}[{1}].{2}&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;Direcciones&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;xxx&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;Calle&amp;quot;&lt;/span&gt;))&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;    @Html.ValidationMessage(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;&amp;quot;{0}[{1}].{2}&amp;quot;&lt;/span&gt;,&lt;span class="str"&gt;&amp;quot;Direcciones&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;xxx&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;Calle&amp;quot;&lt;/span&gt;))&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&amp;lt;/div&amp;gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;&amp;lt;div &lt;span class="kwrd"&gt;class&lt;/span&gt;=&lt;span class="str"&gt;&amp;quot;editor-label&amp;quot;&lt;/span&gt;&amp;gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;    @Html.LabelFor(model =&amp;gt; model.Numero)&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;&amp;lt;/div&amp;gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;&amp;lt;div &lt;span class="kwrd"&gt;class&lt;/span&gt;=&lt;span class="str"&gt;&amp;quot;editor-field&amp;quot;&lt;/span&gt;&amp;gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;    @Html.Editor(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;&amp;quot;{0}[{1}].{2}&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;Direcciones&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;xxx&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;Numero&amp;quot;&lt;/span&gt;))&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;    @Html.ValidationMessage(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;&amp;quot;{0}[{1}].{2}&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;Direcciones&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;xxx&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;Numero&amp;quot;&lt;/span&gt;))&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;&amp;lt;/div&amp;gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Hemos eliminado el Prefix y el número que se le va a asignar.&lt;/p&gt;

&lt;p&gt;- Dentro de la vista de Cliente:&lt;/p&gt;

&lt;p&gt;He modificado el código javascript, para realizar una primera llamada para obtener el html, y para que en el click del botón incremente el contador de Direcciones, y reemplace ‘xxx’ por dicho valor.&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&amp;lt;script type=&lt;span class="str"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    var idx = 0;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    var direccionTemplate = &lt;span class="str"&gt;&amp;quot;&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    $(document).ready(function () {&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;        alert(&lt;span class="str"&gt;&amp;#39;hola&amp;#39;&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;        $.get(&lt;span class="str"&gt;&amp;#39;@Html.Raw(Url.Action(&amp;quot;CreateDir&amp;quot;,&amp;quot;Direcciones&amp;quot;))&amp;#39;&lt;/span&gt;, function (data) {&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;            direccionTemplate = data;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;        });&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;        $(&lt;span class="str"&gt;&amp;#39;#cmdNewDir&amp;#39;&lt;/span&gt;).click(function () {&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;            var newTemplate = direccionTemplate.replace(/xxx/g,idx.toString());&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;            idx++;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;            $(&lt;span class="str"&gt;&amp;#39;#direcciones&amp;#39;&lt;/span&gt;).append(newTemplate);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;        });&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;    });&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;&amp;#160;&lt;/p&gt;



&lt;p&gt;Espero que os sea de utilidad!!!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=205963" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/MVC/default.aspx">MVC</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/Razor/default.aspx">Razor</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/Jquery/default.aspx">Jquery</category></item><item><title>[Tip Rápido] Convivencia de WebForms dentro de MVC.</title><link>http://geeks.ms/blogs/jtorrecilla/archive/2012/06/25/tip-r-225-pido-convivencia-de-webforms-dentro-de-mvc.aspx</link><pubDate>Mon, 25 Jun 2012 19:24:32 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:205757</guid><dc:creator>Javier Torrecilla</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/jtorrecilla/rsscomments.aspx?PostID=205757</wfw:commentRss><comments>http://geeks.ms/blogs/jtorrecilla/archive/2012/06/25/tip-r-225-pido-convivencia-de-webforms-dentro-de-mvc.aspx#comments</comments><description>&lt;h1&gt;&amp;#160;&lt;/h1&gt;  &lt;h1&gt;Introducción&lt;/h1&gt;  &lt;p&gt;En este pequeño post, vamos a ver un pequeño consejo rápido para ver como dentro de un mismo proyecto ASP.NET pueden coincidir páginas WebForms tradicionales con las Vistas de MVC.&lt;/p&gt;  &lt;h1&gt;Al Jaleo&lt;/h1&gt;  &lt;p&gt;Bien, el “truco” consiste en definir una ruta a ignorar dentro de nuestra tabla de rutas (en el fichero Global.asax) dentro de la función “RegisterRoutes”:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;routes.IgnoreRoute(&lt;span class="str"&gt;&amp;quot;Carpeta&amp;quot;&lt;/span&gt;);&lt;/pre&gt;


&lt;p&gt;De está manera todas los formularios Web existentes dentro de dicha “Carpeta”, no van a intentar ser mapeados dentro de la tabla de rutas de nuestra App.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Espero que os sea de utilidad.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Saludos&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=205757" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/MVC/default.aspx">MVC</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/VS/default.aspx">VS</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/VS11/default.aspx">VS11</category></item><item><title>MVC: Trabajando con campos con etiquetas HTML</title><link>http://geeks.ms/blogs/jtorrecilla/archive/2012/04/10/mvc-trabajando-con-campos-con-etiquetas-html.aspx</link><pubDate>Tue, 10 Apr 2012 11:54:43 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:204382</guid><dc:creator>Javier Torrecilla</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/jtorrecilla/rsscomments.aspx?PostID=204382</wfw:commentRss><comments>http://geeks.ms/blogs/jtorrecilla/archive/2012/04/10/mvc-trabajando-con-campos-con-etiquetas-html.aspx#comments</comments><description>&lt;h4&gt;Introducción:&lt;/h4&gt;  &lt;p&gt;En este post vamos a ver como trabajar con un modelo donde una de nuestras propiedades va a almacenar valores de tipo HTML, como por ejemplo el contenido del post de un blog:&lt;/p&gt;  &lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &amp;lt;p&amp;gt;Este el texto del post, con un enlace &amp;lt;a href=&lt;span style="color:#006080;"&gt;&amp;#39;http://bing.com&amp;#39;&lt;/span&gt;&amp;gt;bing&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;h4&gt;Abordando el problema:&lt;/h4&gt;

&lt;p&gt;Partiendo de un modelo sencillo:&lt;/p&gt;

&lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Post&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; Guid ID { get; set; }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Title { get; set; }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt;   5:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Content { get; set; }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum6"&gt;   6:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;donde nuestra propiedad “Content” va a ser la que va almacenar el código HTML vamos a cualificarla con el atributo &lt;a href="http://msdn.microsoft.com/en-us/library/system.web.mvc.allowhtmlattribute(v=vs.98).aspx" target="_blank"&gt;AllowHtml&lt;/a&gt;, para que en el momento de grabar nuestros post desde el explorador, permitirá evitar la validación de dicho campo sin tener que comprobar las etiquetas HTML introducidas en él.&lt;/p&gt;

&lt;p&gt;Posteriormente para poder visualizar nuestro HTML con el formato HTML, vamos a hacer uso del método &lt;a href="http://msdn.microsoft.com/en-us/library/gg480740(v=vs.98).aspx" target="_blank"&gt;Raw&lt;/a&gt; del Helper HTML, por lo que el contenido de nuestra vista quedaría:&lt;/p&gt;

&lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; @&lt;span style="color:#0000ff;"&gt;foreach&lt;/span&gt; (var c &lt;span style="color:#0000ff;"&gt;in&lt;/span&gt; Model)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt;     &amp;lt;article&amp;gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt;         &amp;lt;h1&amp;gt;@c.Title&amp;lt;/h1&amp;gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt;   5:&lt;/span&gt;         @Html.Raw(@c.Content)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum6"&gt;   6:&lt;/span&gt;     &amp;lt;/article&amp;gt; &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum7"&gt;   7:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Espero que os sea de utilidad.&lt;/p&gt;

&lt;p&gt;Saludos!!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=204382" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/MVC/default.aspx">MVC</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/C_2300_/default.aspx">C#</category></item><item><title>MVC3 Release Candidate</title><link>http://geeks.ms/blogs/jtorrecilla/archive/2010/11/10/mvc3-release-candidate.aspx</link><pubDate>Wed, 10 Nov 2010 08:26:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:184605</guid><dc:creator>Javier Torrecilla</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/jtorrecilla/rsscomments.aspx?PostID=184605</wfw:commentRss><comments>http://geeks.ms/blogs/jtorrecilla/archive/2010/11/10/mvc3-release-candidate.aspx#comments</comments><description>&lt;p&gt;Esto es un no parar, ayer salió la Release Candidate de MVC3, anunciada por &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/11/09/announcing-the-asp-net-mvc-3-release-candidate.aspx" target="_blank"&gt;ScottGu&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Podéis descargaros la nueva versión de &lt;a href="http://download.microsoft.com/download/9/7/C/97C2DA73-D1B1-423D-A170-9C33CF49981D/AspNetMVC3Setup.exe" target="_blank"&gt;aquí&lt;/a&gt; y ver las Notas de la descargar &lt;a href="http://download.microsoft.com/download/9/7/C/97C2DA73-D1B1-423D-A170-9C33CF49981D/ASP.NET-MVC-3-RC-Release-Notes.doc" target="_blank"&gt;aquí&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;¿Qué novedades trae esta versión?&lt;/p&gt; &lt;p&gt;- Soporte Intelisense para las vistas Razor:&lt;/p&gt;(Una imagen vale más que mil palabras) &lt;a title="ImageShack - Image And Video Hosting" href="http://img688.imageshack.us/i/razory.png/" target="_blank"&gt;&lt;img border="0" src="http://img688.imageshack.us/img688/5426/razory.png" alt="" /&gt;&lt;/a&gt;  &lt;blockquote&gt; &lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;- Nuevos Atributos Interesantes:&lt;/p&gt; &lt;ol&gt; &lt;ol&gt; &lt;li&gt;ControllerSessionStateAttribute: Es un atributo para poder, digamos, alterar el uso de la Session. &lt;br /&gt;El atributo recibe un valor de tipo SessionStateBehavior, el cual es una enumeración con los siguientes valores:&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Default: Es el valor por defecto, que tenga la aplicación.&lt;/li&gt; &lt;li&gt;Disabled: Inhabilita el uso de Session en el controlador. Utilizar una variable de Session con este valor, va a provocar una excepción.&lt;/li&gt; &lt;li&gt;ReadOnly: Solo va a permitir consultar valores de Session, es decir, la escritura en variables de Session nos provocará una excepción.&lt;/li&gt; &lt;li&gt;Required:Va a permitir leer y escribir en las variables de Session.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;pre class="code"&gt;[&lt;span style="color:#2b91af;"&gt;ControllerSessionStateAttribute&lt;/span&gt;(System.Web.SessionState.&lt;span style="color:#2b91af;"&gt;SessionStateBehavior&lt;/span&gt;.Required)]
    &lt;span style="color:blue;"&gt;public class &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;EjemploController &lt;/span&gt;: &lt;span style="color:#2b91af;"&gt;Controller&lt;br /&gt;
&lt;/span&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/ul&gt;
&lt;li&gt;Atributos de Validación: Se han introducido algunos nuevos atributos como son:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;SkipRequestValidation: es el equivalente al que hace unos días publique &lt;a href="http://geeks.ms/blogs/jtorrecilla/archive/2010/10/27/mvc3-val-237-daci-243-n-de-elementos-html-condicionales.aspx" target="_blank"&gt;aquí&lt;/a&gt;. Nos va a permitir evitar la validación del código para elementos que no deseemos, por ejemplo un editor de texto… En el siguiente ejemplo muestro ambos atributos, cuyo resultado va a ser el mismo.&lt;/li&gt;&lt;pre class="code"&gt;[&lt;span style="color:#2b91af;"&gt;ValidateInput&lt;/span&gt;(&lt;span style="color:blue;"&gt;false&lt;/span&gt;)]
[&lt;span style="color:#2b91af;"&gt;SkipRequestValidation&lt;/span&gt;]
&lt;span style="color:blue;"&gt;public string &lt;/span&gt;Message { &lt;span style="color:blue;"&gt;get&lt;/span&gt;; &lt;span style="color:blue;"&gt;set&lt;/span&gt;; }&lt;/pre&gt;&lt;pre class="code"&gt;&amp;nbsp;&lt;/pre&gt;&lt;/ul&gt;&lt;/ol&gt;&lt;/ol&gt;
&lt;ol&gt;
&lt;ol&gt;
&lt;ul&gt;
&lt;li&gt;CompareAttribute: Imaginaros, la típica situación donde tenemos una vista para crear usuarios, con una contraseña y otra caja de texto para validar la contraseña. &lt;br /&gt;Este atributo, nos va a permitir a nivel de propiedad, establecer una comparación con otra propiedad de nuestro Modelo de una manera muy sencilla:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;span style="color:#2b91af;"&gt;Required&lt;/span&gt;]
        &lt;span style="color:blue;"&gt;public string &lt;/span&gt;Contraseña { &lt;span style="color:blue;"&gt;get&lt;/span&gt;; &lt;span style="color:blue;"&gt;set&lt;/span&gt;; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;span style="color:#2b91af;"&gt;Required&lt;/span&gt;]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;span style="color:#2b91af;"&gt;Compare&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;&amp;quot;Contraseña&amp;quot;&lt;/span&gt;)]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public string &lt;/span&gt;RepiteContraseña { &lt;span style="color:blue;"&gt;get&lt;/span&gt;; &lt;span style="color:blue;"&gt;set&lt;/span&gt;; }&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ol&gt;&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Además del campo con el que comparar se pueden indicar las siguientes propiedades:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - ErrorMessage&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - ErrorMessageResourceName&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - ErrorMessageResourceType&lt;/p&gt;
&lt;ol&gt;
&lt;ol&gt;
&lt;ul&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;li&gt;Remote: Este es un atributo más que interesante, debido a que nos va a permitir realizar una validación cuando estemos editando un modelo, al igual que podríamos realizarla con JQuery, pero teniendo el código en el controlador. El atributo tiene varías sobrecargas, pero quizás la mas sencilla sea:&lt;br /&gt;&lt;/li&gt;&lt;pre class="code"&gt;[&lt;span style="color:#2b91af;"&gt;Remote&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;&amp;quot;Funcion&amp;quot;&lt;/span&gt;,&lt;span style="color:#a31515;"&gt;&amp;quot;Controller&amp;quot;&lt;/span&gt;)]
&lt;span style="color:blue;"&gt;public string &lt;/span&gt;Topic { &lt;span style="color:blue;"&gt;get&lt;/span&gt;; &lt;span style="color:blue;"&gt;set&lt;/span&gt;; }
&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/ul&gt;&lt;/ol&gt;&lt;/ol&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Está sobrecargar recibe 2 parámetros:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Nombre de la función que se va a ejecutar para la validación. &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Controlador donde se encuentra la función a ejecutar&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Es de entender, que el valor de retorno de la función tendrá que ser de tipo Boolean(bool)&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Hay más novedades en esta “Release”, pero no voy a entrar a detallar más, os dejo que juguéis un poco con ella, estoy convencido de que os va a gustar.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;

Se me olvidaba comentar que os paséis por el &lt;a href="http://geeks.ms/blogs/etomas/archive/2010/11/09/unobtrusive-ajax-en-mvc3.aspx"&gt;Blog de Eduard&lt;/a&gt; para ver el tema de Unobstrusive Ajax!!!
&lt;p&gt;Un saludo.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=184605" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/MVC/default.aspx">MVC</category></item><item><title>Mas Helpers de MVC3</title><link>http://geeks.ms/blogs/jtorrecilla/archive/2010/11/08/mas-helpers-de-mvc3.aspx</link><pubDate>Mon, 08 Nov 2010 22:23:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:184535</guid><dc:creator>Javier Torrecilla</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/jtorrecilla/rsscomments.aspx?PostID=184535</wfw:commentRss><comments>http://geeks.ms/blogs/jtorrecilla/archive/2010/11/08/mas-helpers-de-mvc3.aspx#comments</comments><description>&lt;p&gt;que Continuando con los distintos Helpers que han sido introducidos, &lt;a href="http://geeks.ms/blogs/jtorrecilla/archive/2010/11/08/helpers-redes-sociales-en-mvc3.aspx" target="_blank"&gt;Redes Sociales y Bing&lt;/a&gt; o Los WebGrid y WebChart, entre otros, os voy a hablar de otros novedosos, y que hoy en día se antojan casi como necesarios.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;font color="#ffff00"&gt;HELPER VIDEO:&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;¿Quién no se ha visto en la necesidad de incrustar un video flash, o un video Media Player en una web con WebForms?&lt;/p&gt;  &lt;p&gt;Bueno, pues el equipo de MVC ha introducido este nuevo Helper, para “facilitarnos” el trabajo. Presenta los siguientes métodos, para mostrar distintos tipos de videos:&lt;/p&gt;  &lt;p&gt;- Flash (Video con formato Flash): El único parámetro requerido es la ruta del fichero a reproducir, el resto de parámetros son los siguientes:&lt;/p&gt; &lt;img border="0" src="http://img838.imageshack.us/img838/2915/flasho.png" alt="" /&gt;&lt;/a&gt;   &lt;p&gt;- MediaPlayer (Video con formato WMP): El único parámetro requerido es la ruta del fichero a reproducir, el resto de parámetros son los siguientes:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;lt;%= Video.MediaPlayer(&amp;quot;&lt;a href="http://boss.streamos.com/wmedia/ume/thewho/mygeneration.asx&amp;quot;)%"&gt;http://boss.streamos.com/wmedia/ume/thewho/mygeneration.asx&amp;quot;)%&lt;/a&gt;&amp;gt;&lt;/p&gt; &lt;a title="ImageShack - Image And Video Hosting" href="http://img593.imageshack.us/i/wmpe.png/" target="_blank"&gt;&lt;img border="0" src="http://img593.imageshack.us/img593/5351/wmpe.png" alt="" /&gt;&lt;/a&gt;   &lt;p&gt;- SilverLight: Requiere los parametros de Ruta, ancho y alto, y además presenta los parámetros:&lt;/p&gt;  &lt;p&gt;&lt;a title="ImageShack - Image And Video Hosting" href="http://img253.imageshack.us/i/silverlightt.png/" target="_blank"&gt;&lt;img border="0" src="http://img253.imageshack.us/img253/6245/silverlightt.png" alt="" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;font color="#ffff00"&gt;LINKSHARE VIDEO:&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Algo que está muy en auge, como os indicaba, son las distintas redes sociales, y compartir la información que encontramos en Internet en ellas.&lt;/p&gt;  &lt;p&gt;Por ejemplo, aquí mismo al finalizar este artículo, os vais a encontrar con una barra para compartir el Post, ya sabéis difundir el mensaje &lt;img style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none;" class="wlEmoticon wlEmoticon-smilewithtongueout" alt="Lengua fuera" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jtorrecilla/wlEmoticon_2D00_smilewithtongueout_5F00_3562BC75.png" /&gt; (Bueno solo si os gusta, jeje).&lt;/p&gt;  &lt;p&gt;Al grano, en MVC3 se ha incluido el Helper LinkShare, el cual de una manera muy sencilla nos va a permitir poner una barra de “Compartir” en nuestras vistas:&lt;/p&gt;  &lt;p&gt;&amp;lt;%: LinkShare.GetHtml(&amp;quot;Comparte Mi Sitio&amp;quot;) %&amp;gt;&lt;/p&gt;  &lt;p&gt;El único parámetro requerido es el Nombre del Sitio a compartir. Otros parámetros:&lt;/p&gt; &lt;a title="ImageShack - Image And Video Hosting" href="http://img812.imageshack.us/i/linkshare.png/" target="_blank"&gt;&lt;img border="0" src="http://img812.imageshack.us/img812/804/linkshare.png" alt="" /&gt;&lt;/a&gt;   &lt;p&gt;Y el resultado:&lt;/p&gt; &lt;a title="ImageShack - Image And Video Hosting" href="http://img87.imageshack.us/i/redes.png/" target="_blank"&gt;&lt;img border="0" src="http://img87.imageshack.us/img87/2138/redes.png" alt="" /&gt;&lt;/a&gt;   &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Bueno por hoy ya os he dado algo de caña para que veáis lo que Mola MVC y las nuevas ventajas de MVC3.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Un saludo&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=184535" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/MVC/default.aspx">MVC</category></item><item><title>Helpers Redes Sociales en MVC3</title><link>http://geeks.ms/blogs/jtorrecilla/archive/2010/11/08/helpers-redes-sociales-en-mvc3.aspx</link><pubDate>Mon, 08 Nov 2010 13:32:05 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:184503</guid><dc:creator>Javier Torrecilla</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/jtorrecilla/rsscomments.aspx?PostID=184503</wfw:commentRss><comments>http://geeks.ms/blogs/jtorrecilla/archive/2010/11/08/helpers-redes-sociales-en-mvc3.aspx#comments</comments><description>&lt;p&gt;En varios BLOGS, se habían anunciado para MVC3 helpers para aportar una rápida integración con las Redes sociales (Twitter, FaceBook…), Buscadores (Bing)…&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Si ya tenemos en nuestro entorno instalada la Beta 3 de MVC, vamos a crear un nuevo proyecto de ejemplo.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Una vez creado, vamos a agregar un paquete a través de NUPACK, para poder incluir los Nuevos Helpers. Para ello, pulsamos con el botón derecho en el proyecto y elegimos “Add package reference”:&lt;/p&gt; &lt;a title="ImageShack - Image And Video Hosting" href="http://img707.imageshack.us/i/nupack1.png/" target="_blank"&gt;&lt;img border="0" src="http://img707.imageshack.us/img707/56/nupack1.png" alt="" /&gt;&lt;/a&gt;   &lt;p&gt;Seleccionaríamos “microsoft-web-helpers” y pulsamos en aceptar.&lt;/p&gt;  &lt;p&gt;Una vez realizado, a la carpeta de referencias se habrá añadido la referencia “Microsoft.Web.Helpers.dll”. Para que funcione de manera correcta vamos a compilar el proyecto.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Bien una vez instalado y compilado, vamos a ir a nuestra vista por defecto para hacer unos pequeños ejemplos, que voy a poner con una vista normal (no Razor):&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;font color="#ffff00"&gt;TWITTER Helper:&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Vamos a empezar con Twitter (que me gusta más :p &lt;a href="http://twitter.com/Jtorrecilla" target="_blank"&gt;Mi Twitter&lt;/a&gt;):&lt;/p&gt;  &lt;p&gt;Si en nuestra vista tecleamos “&amp;lt;%= “ o &amp;quot;&amp;lt;:”&lt;/p&gt;  &lt;p&gt;Podremos ver los contenidos que nos va a mostrar el Intellisense. Bien si tecleemos Twitter nos va a aparecer nuestro nuevo Helper.&lt;/p&gt;  &lt;p&gt;¿Qué métodos presenta?:&lt;/p&gt;  &lt;p&gt;- Profile: Nos permite mostrar el contenido de nuestro perfil en Twitter. Aunque el único parámetro obligatorio es twitterUserName, os dejo una imagen con los distintos parámetros:&lt;/p&gt; &lt;a title="ImageShack - Image And Video Hosting" href="http://img708.imageshack.us/i/twitterqb.png/" target="_blank"&gt;&lt;img border="0" src="http://img708.imageshack.us/img708/28/twitterqb.png" alt="" /&gt;&lt;/a&gt;   &lt;p&gt;Como quedaría el código, de manera simple:&lt;/p&gt;  &lt;pre class="code"&gt;    &lt;span style="background:yellow;"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color:blue;"&gt;: &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Twitter&lt;/span&gt;.Profile(&lt;span style="color:#a31515;"&gt;&amp;quot;jtorrecilla&amp;quot;&lt;/span&gt;)&lt;span style="background:yellow;"&gt;%&amp;gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;Cuando ejecutamos nuestra vista quedaría algo así:&lt;/p&gt;
&lt;a title="ImageShack - Image And Video Hosting" href="http://img139.imageshack.us/i/twitter2p.png/" target="_blank"&gt;&lt;img border="0" src="http://img139.imageshack.us/img139/7339/twitter2p.png" alt="" /&gt;&lt;/a&gt; 

&lt;p&gt;- Search: El otro método disponible es el método de Búsqueda. Al igual que con el método Profile, tiene varios parámetros, pero el único obligatorio es: SearchQuery, Os dejo una imagen con el resto de parámetros.&lt;/p&gt;
&lt;a title="ImageShack - Image And Video Hosting" href="http://img259.imageshack.us/i/twitter3r.png/" target="_blank"&gt;&lt;img border="0" src="http://img259.imageshack.us/img259/7871/twitter3r.png" alt="" /&gt;&lt;/a&gt; 

&lt;p&gt;El código quedaría así:&lt;/p&gt;

&lt;p&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="background:yellow;"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Twitter&lt;/span&gt;.Search(&lt;span style="color:#a31515;"&gt;&amp;quot;MVC&amp;quot;&lt;/span&gt;) &lt;span style="background:yellow;"&gt;%&amp;gt; 
    &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;El resultado de una búsqueda sencilla sería: &lt;/p&gt;
&lt;a title="ImageShack - Image And Video Hosting" href="http://img441.imageshack.us/i/twitter4.png/" target="_blank"&gt;&lt;img border="0" src="http://img441.imageshack.us/img441/9176/twitter4.png" alt="" /&gt;&lt;/a&gt; 

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;font color="#ffff00"&gt;&amp;#160;&lt;strong&gt;&lt;u&gt;FACEBOOK Helper:&lt;/u&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;Seguro que cada vez que vas a alguna web / blog te encuentras con el típico botón de “Me gusta” para publicarlo en FaceBook, pues ha llegado a MVC el Helper, que te lo permite hacer de una forma muy sencilla.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;El único método de este Helper es “LikeButton”. Presenta varios parámetros, todos ellos opcionales, y los podeis ver aquí:&lt;/p&gt;
&lt;a title="ImageShack - Image And Video Hosting" href="http://img600.imageshack.us/i/facebook1.png/" target="_blank"&gt;&lt;img border="0" src="http://img600.imageshack.us/img600/5255/facebook1.png" alt="" /&gt;&lt;/a&gt; 

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;En código un ejemplo sencillo sería:&lt;/p&gt;

&lt;pre class="code"&gt; &lt;span style="background:yellow;"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color:blue;"&gt;= &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Facebook&lt;/span&gt;.LikeButton(&lt;span style="color:#a31515;"&gt;&amp;quot;http://geeks.ms/blogs/jtorrecilla/&amp;quot;&lt;/span&gt;) &lt;span style="background:yellow;"&gt;%&amp;gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;Y el resultado (antes y después de pulsar en Me Gusta):&lt;/p&gt;
&lt;a title="ImageShack - Image And Video Hosting" href="http://img710.imageshack.us/i/facebook2z.png/" target="_blank"&gt;&lt;img border="0" src="http://img710.imageshack.us/img710/2887/facebook2z.png" alt="" /&gt;&lt;/a&gt; 

&lt;p&gt;&lt;font color="#ffff00"&gt;&amp;#160;&lt;strong&gt;&lt;u&gt;BING Helper:&lt;/u&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;Este Helper nos va a permitir incrustar el buscador de BING, en nuestras vistas con 2 sencillo métodos:&lt;/p&gt;

&lt;p&gt;- SearchBox: El código sería muy sencillo, aunque el método puede recibir distintos parámetros, todos ellos opcionales: Url del sitio, y Tamaño de la Caja que se va a visualizar.&lt;/p&gt;

&lt;pre class="code"&gt;    &lt;span style="background:yellow;"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Bing&lt;/span&gt;.SearchBox() &lt;span style="background:yellow;"&gt;%&amp;gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;Visualización Ejemplo: &lt;/p&gt;
&lt;a title="ImageShack - Image And Video Hosting" href="http://img231.imageshack.us/i/bingf.png/" target="_blank"&gt;&lt;img border="0" src="http://img231.imageshack.us/img231/4108/bingf.png" alt="" /&gt;&lt;/a&gt; 

&lt;p&gt;- AdvancedSearchBox: Igual que el anterior con los siguientes parámetros: &lt;/p&gt;
&lt;a title="ImageShack - Image And Video Hosting" href="http://img521.imageshack.us/i/bing2.png/" target="_blank"&gt;&lt;img border="0" src="http://img521.imageshack.us/img521/953/bing2.png" alt="" /&gt;&lt;/a&gt; 

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Bueno después de la parrafada que os he soltado, solo espero que os sea de utilidad.&lt;/p&gt;

&lt;p&gt;Un saludo.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=184503" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/MVC/default.aspx">MVC</category></item><item><title>MVC3: Helper WebGrid (3/3)</title><link>http://geeks.ms/blogs/jtorrecilla/archive/2010/10/28/mvc3-helper-webgrid-3-3.aspx</link><pubDate>Thu, 28 Oct 2010 06:26:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:184022</guid><dc:creator>Javier Torrecilla</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/jtorrecilla/rsscomments.aspx?PostID=184022</wfw:commentRss><comments>http://geeks.ms/blogs/jtorrecilla/archive/2010/10/28/mvc3-helper-webgrid-3-3.aspx#comments</comments><description>&lt;p&gt;Días atrás, os hable de este helper(&lt;a href="http://geeks.ms/blogs/jtorrecilla/archive/2010/10/28/mvc3-helper-webgrid-1-3.aspx" target="_blank"&gt;aquí&lt;/a&gt; y &lt;a href="http://geeks.ms/blogs/jtorrecilla/archive/2010/10/28/mvc3-helper-webgrid-2-3.aspx" target="_blank"&gt;aquí&lt;/a&gt;). Hoy voy a dar mas detalles de la personalización que nos aporta.&lt;/p&gt;  &lt;p&gt;La función GetHtml(), presenta un parámetro que es “Columns”, el cual es del tipo &amp;quot;IEnumerable&amp;lt;WebGridColumn&amp;gt;”.&lt;/p&gt;  &lt;p&gt;Si no lo especificamos al invocar a la función, por defecto, se van a visualizar las distintas propiedades de nuestro origen de datos.&lt;/p&gt;  &lt;p&gt;Si queremos personalizar las columnas, podríamos hacerlo de la siguiente manera:&lt;/p&gt;  &lt;p&gt;1) Declaramos un objeto que Implemente IEnumerable&amp;lt;T&amp;gt; como puede ser una Lista:&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;WebGridColumn&lt;/span&gt;&amp;gt; columnas= &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;WebGridColumn&lt;/span&gt;&amp;gt;();&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;2) Agregar las columnas que deseemos a la lista&lt;/p&gt;

&lt;p&gt;Para añadir una nueva columna, podemos hacerlo de la siguiente manera:&lt;/p&gt;

&lt;pre class="code"&gt;columnas.Add(&lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;WebGridColumn &lt;/span&gt;{[Propiedades] });&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;[Propiedades]: podemos definir las siguientes propiedades de las columnas:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;ColumnName: Nombre de la Columna. &lt;/li&gt;

  &lt;li&gt;Header: Nombre que va a visualizarse en la cabecera de la tabla. &lt;/li&gt;

  &lt;li&gt;CanSort: Va a indicar si la tabla se puede ordenar o no, por la columna indicada. &lt;/li&gt;

  &lt;li&gt;Style: Estilo que se va a aplicar a las celdas de esta columna. &lt;/li&gt;

  &lt;li&gt;Format: Vamos a definir el contenido y el formato de cada celda. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Por defecto podemos agregar nuestras columnas del modelo de la siguiente manera:&lt;/p&gt;

&lt;pre class="code"&gt;columnas.Add(
    &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;WebGridColumn &lt;/span&gt;{ 
        ColumnName = &lt;span style="color:#a31515;"&gt;&amp;quot;EmployeeHireDate&amp;quot;&lt;/span&gt;, 
        Header = &lt;span style="color:#a31515;"&gt;&amp;quot;Hire Date&amp;quot;&lt;/span&gt;, 
        CanSort = &lt;span style="color:blue;"&gt;true&lt;/span&gt;, 
        Format = item =&amp;gt; item.EmployeeHireDate }); &lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;El formato se realiza a través de una expresión Lambda y con un tipo dinámico. &lt;/p&gt;

&lt;p&gt;Podemos añadir columnas, que sean del tipo MvcHtmlString, de la siguiente manera (el ejemplo es con un ActionLink): &lt;/p&gt;

&lt;pre class="code"&gt;columnas.Add(&lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;WebGridColumn &lt;/span&gt;{ 
    ColumnName = &lt;span style="color:#a31515;"&gt;&amp;quot;Actions&amp;quot;&lt;/span&gt;, 
    Header = &lt;span style="color:#a31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;,  
    Format = item =&amp;gt;  Html.ActionLink(&lt;span style="color:#a31515;"&gt;&amp;quot;Edit&amp;quot;&lt;/span&gt;, &lt;span style="color:#a31515;"&gt;&amp;quot;Edit&amp;quot;&lt;/span&gt;, &lt;span style="color:blue;"&gt;new &lt;/span&gt;{ id = item.EmployeeId })   });   &lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;3) Enlazar la lista de columnas con la función.&lt;/p&gt;

&lt;p&gt;Para mostrar las columnas que deseemos, se podrá realizar de la siguiente manera:&lt;/p&gt;

&lt;pre class="code"&gt;        &lt;span style="background:yellow;"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color:blue;"&gt;= &lt;/span&gt;grid.GetHtml(columns: columnas);&lt;span style="background:yellow;"&gt;%&amp;gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;A la hora de definir el WebGrid, me he dado cuenta de una peculiaridad, el valor por defecto del parámetro canSort es “True”, es decir, podremos ordenar para cada una de las columnas definidas. &lt;/p&gt;

&lt;p&gt;Bien esto funciona, si no asignamos el parámetro Columns de GetHtml, o Habilitamos la Propiedad CanSort de las columnas que queramos que permitan ordenación.&lt;/p&gt;

&lt;p&gt;Espero que os sea de utilidad.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=184022" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/MVC/default.aspx">MVC</category></item><item><title>MVC3: Helper WebGrid (2/3)</title><link>http://geeks.ms/blogs/jtorrecilla/archive/2010/10/28/mvc3-helper-webgrid-2-3.aspx</link><pubDate>Thu, 28 Oct 2010 06:22:16 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:184020</guid><dc:creator>Javier Torrecilla</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/jtorrecilla/rsscomments.aspx?PostID=184020</wfw:commentRss><comments>http://geeks.ms/blogs/jtorrecilla/archive/2010/10/28/mvc3-helper-webgrid-2-3.aspx#comments</comments><description>Como os indicaba el otro &lt;a href="http://geeks.ms/blogs/jtorrecilla/archive/2010/10/28/mvc3-helper-webgrid-1-3.aspx" target="_blank"&gt;día&lt;/a&gt;, ha salido una Beta de MVC3, y han agregado el Helper WebGrid.  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;El método GetHtml, del objeto, nos va a permitir a través de una serie de parámetros como se va a visualizar y las opciones que nos va a permitir:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;TableStyle: Estilo CSS predefinido para la tabla que se va a generar de forma automática. &lt;/li&gt;    &lt;li&gt;HeaderStyle: Estilo CSS para la cabecera de la tabla. &lt;/li&gt;    &lt;li&gt;FooterStyle: Estilo CSS para el pie de la tabla. &lt;/li&gt;    &lt;li&gt;RowStyle: Estilo CSS para las filas Impares. &lt;/li&gt;    &lt;li&gt;AlternateRowStyle: Estilo CSS para las filas Pares. &lt;/li&gt;    &lt;li&gt;SelectedRowStyle: Estilo CSS de la fila seleccionada. &lt;/li&gt;    &lt;li&gt;displayHeader: Indica si se va a visualizar la cabecera de la tabla o no. &lt;/li&gt;    &lt;li&gt;fillEmptyRows: Indica si se va a rellenar hasta el numero de filas indicados en la paginación.(True/False) &lt;/li&gt;    &lt;li&gt;EmptyRowCellValue: Indica el texto que se va a introducir en las filas dejadas en blanco cuando el parámetro anterior sea True. &lt;/li&gt;    &lt;li&gt;column: Objeto de tipo IEnumerable con las columnas que se van a visualizar. &lt;/li&gt;    &lt;li&gt;Exclusions: Listado de columnas que no queremos visualizar. &lt;/li&gt;    &lt;li&gt;mode: Modo de paginado. Valores: All, FirstLast, NextPrevious y Numeric. &lt;/li&gt;    &lt;li&gt;firstText: Texto de Ir a los primeros registros. &lt;/li&gt;    &lt;li&gt;Previoustext: Texto de ir atrás. &lt;/li&gt;    &lt;li&gt;nextText:Texto de ir al siguiente. &lt;/li&gt;    &lt;li&gt;LastText: Texto de Ir a los últimos registros. &lt;/li&gt;    &lt;li&gt;NumericLinksCount: Número de enlaces a mostrar. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Bueno, una vez parametricemos o no el método getHtml(), nos va a generar el código HTML, nos lo va a insertar en nuestra Vista.&lt;/p&gt;  &lt;p&gt;Internamente, si hemos habilitado la paginación y ordenación nos va a generar el código que se encargue de llevar a cabo dichos métodos, sin crear ni una sola línea de código.&lt;/p&gt;  &lt;p&gt;Espero que os sirva, y si tenéis cualquier duda aquí estoy.&lt;/p&gt;  &lt;p&gt;Saludos!!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=184020" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/MVC/default.aspx">MVC</category></item><item><title>MVC3: Helper WebGrid (1/3)</title><link>http://geeks.ms/blogs/jtorrecilla/archive/2010/10/28/mvc3-helper-webgrid-1-3.aspx</link><pubDate>Thu, 28 Oct 2010 06:21:03 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:184019</guid><dc:creator>Javier Torrecilla</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/jtorrecilla/rsscomments.aspx?PostID=184019</wfw:commentRss><comments>http://geeks.ms/blogs/jtorrecilla/archive/2010/10/28/mvc3-helper-webgrid-1-3.aspx#comments</comments><description>&lt;p&gt;Como todos sabréis hace un tiempo salieron grandes novedades en Microsoft, con la Beta de MVC3, NuPack y WebMatrix Beta 2 (&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/10/06/announcing-nupack-asp-net-mvc-3-beta-and-webmatrix-beta-2.aspx" target="_blank"&gt;Anuncio de ScottGu&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;Este post va dedicado a un Helper agregado en MVC3 que no estaba en MVC2: WebGrid.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Este Helper, nos va a permitir definir un Grid, de manera muy rápida y sencilla:&lt;/p&gt;  &lt;p&gt;1º: Definirlo:&lt;/p&gt;  &lt;blockquote&gt;   &lt;pre class="code"&gt;&lt;span style="background:yellow;"&gt;&amp;lt;%&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;WebGrid &lt;/span&gt;grid = &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;WebGrid&lt;/span&gt;(Parámetros) &lt;span style="background:yellow;"&gt;%&amp;gt;
&lt;/span&gt;&lt;/pre&gt;
  &lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/blockquote&gt;

&lt;p&gt;2º: Hacer que se muestre:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre class="code"&gt;&lt;span style="background:yellow;"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color:blue;"&gt;= &lt;/span&gt;grid.GetHtml();&lt;span style="background:yellow;"&gt;%&amp;gt;
&lt;/span&gt;&lt;/pre&gt;
  &lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/blockquote&gt;

&lt;p&gt;Como veis en la definición he indicado Parámetros. Entre los Parámetros admitidos por el constructor, encontramos los siguientes (entre otros):&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Source: Origen de Nuestros Datos. Normalmente, va a ser el resultado de una Vista, del tipo IEnumerable&amp;lt;T&amp;gt;. &lt;/li&gt;

  &lt;li&gt;Columns: Nombre de las Columnas, del tipo IEnumerable. &lt;/li&gt;

  &lt;li&gt;DefaultSort: Filtro por Defecto que se va a utilizar. &lt;/li&gt;

  &lt;li&gt;RowsPerPage: Número de Filas por Página. &lt;/li&gt;

  &lt;li&gt;CanPage: Indica si está habilitada la paginación. &lt;/li&gt;

  &lt;li&gt;CanSort: Indica si está habilitada la ordenación &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A la hora de mostrarlo con GetHtml, podemos definir que estilos CSS se van a utilizar, mañana pondré un segundo ejemplo con ello.&lt;/p&gt;

&lt;p&gt;He creado un pequeño ejemplo, que podéis descargar desde &lt;a href="http://cid-3f59c33a50c6d482.office.live.com/self.aspx/.Public/MVC3%5E_WebGrid.rar" target="_blank"&gt;aquí&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Saludos&lt;/p&gt;

&lt;p&gt;PD: Podéis ver un ejemplo Con Razor, en el &lt;a href="http://weblogs.asp.net/shijuvarghese/archive/2010/10/08/using-the-webgrid-helper-in-asp-net-mvc-3-beta.aspx" target="_blank"&gt;Blog de Shiju Varghese’s&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=184019" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/MVC/default.aspx">MVC</category></item><item><title>MVC3: Valídación de elementos HTML Condicionales</title><link>http://geeks.ms/blogs/jtorrecilla/archive/2010/10/27/mvc3-val-237-daci-243-n-de-elementos-html-condicionales.aspx</link><pubDate>Wed, 27 Oct 2010 14:38:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:183974</guid><dc:creator>Javier Torrecilla</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/jtorrecilla/rsscomments.aspx?PostID=183974</wfw:commentRss><comments>http://geeks.ms/blogs/jtorrecilla/archive/2010/10/27/mvc3-val-237-daci-243-n-de-elementos-html-condicionales.aspx#comments</comments><description>&lt;p&gt;Hasta ahora, tanto en aplicaciones WebForms como en ASP.NET MVC1 y ASP.NET MVC2, si queríamos dejar de comprobar la introducción de código HTML en alguno de los campos de nuestros formularios, teníamos que permitirlo en todos los campos, y a través de nuestras propias validaciones tratar de no permitirlo (javascript o código servidor). &lt;/p&gt;  &lt;p&gt;En la Beta de MVC3, ha aparecido una modificación en el Atributo ValidateInput, que nos permite excluir algunos campos a la hora de validar nuestro formulario. &lt;/p&gt;  &lt;p&gt;El nuevo parámetro del atributo, se llama Exclude, y nos permite introducir distintos campos de nuestro formulario separados por comas. Aquí va un ejemplo de la sintaxis: &lt;/p&gt;  &lt;pre class="code"&gt;[&lt;span style="color:#2b91af;"&gt;ValidateInput&lt;/span&gt;(&lt;span style="color:blue;"&gt;true&lt;/span&gt;, Exclude = &lt;span style="color:#a31515;"&gt;&amp;quot;ContentPost&amp;quot;&lt;/span&gt;)]
&lt;span style="color:blue;"&gt;public &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;ActionResult &lt;/span&gt;Create()
{
    &lt;span style="color:green;"&gt;//Contenido de la vista.

&lt;/span&gt;}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;Espero que os sea de utilidad!&lt;/p&gt;

&lt;p&gt;Saludos.&lt;/p&gt;

&lt;p&gt;Fuente &lt;a href="http://www.asp.net/learn/whitepapers/mvc3-release-notes#0.1__Toc274034226"&gt;WhitePaper MVC 3&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=183974" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/MVC/default.aspx">MVC</category></item></channel></rss>