This article has been localized into Spanish by the community.
Tag Helper para Formas
Los "Tag Helpers" para Formas te asistirán en la generación de las etiquetas de la FORMA, que deben estar al rededor de cualquier elemento de éste formulario que desees enviar de vuelta al servidor, por ejemplo, incluyendo campos de entrada, areas de texto, etc. Cuando se usan "Tag Helper" para Formas, en comparación a escribir todo el código Markup manualmente, te beneficiarás de las siguientes cosas:
- Puedes referenciar al Controlador y la Acción a la que enviarás la FORMA fácilmente, o incluso referenciar una ruta
- Una ficha oculta de verificación de requerimiento es automáticamente generada y agregada a la FORMA, para ayudar a protegerte contra la falsificación de solicitudes entre sitios
Atributos de Controlador y Acciones
La forma más fácil y tal vez la más común de usar los "Tag Helper" para Formas, es con los atributos de Controlador y Acciones. Esto permite especificar a que Acción en que Controlador quieres que la Forma sea enviada. Como ejemplo:
<form method="post" asp-controller="Blog" asp-action="UpdateEntry"></form>
Fíjate como se mezclan atributos regulares de HTML (el atributo method) con atributos "Tag Helper" (asp-controller y asp-action). La Forma resultante lucirá como sigue:
<form method="post" action="/Blog/UpdateEntry">
<input name="__RequestVerificationToken" type="hidden" value="CfDJ8IVs_IPAjddLnF3cGQU5ywNWoiF_3N0ZpjIkXnpjYFazt7cZcCPogKdTTfI7sFI7JyxIpH8ofcou78e5K7b8vUZcWpKZmvqU3e8nzumwm6WaHWXNMnQSvIB6P_Ok0mVwUloJN4MAkDxhxHlU71iJxqY">
</form>
Como puedes ver, el "Tag Helper" ha convertido los valores de ambos atributos (controlador y acción) en el atributo de Formulario HTML action/Blog/UpdateEntry. Al mismo tiempo, un campo de entrada oculto fue generado que guardar la ficha de verificación de solicitud.
El atributo Route
Como puedes ver arriba, apuntar al Controlador y al método de acción es fácil - simplemente especificas el nombre del controlador y el nombre del método de acción. Sin embargo, como alternativa, puedes querer apuntar a una ruta especifica - la ruta será entonces la responsable de llegar a la acción deseada. Esto se puede hacer usando el atributo asp-route y aquí hay un pequeño ejemplo para ilustrarlo:
<form method="post" asp-route="UpdateBlogEntry"></form>
El valor especificado en la propiedad asp-route debería ser igual al nombre de la ruta a la que quieres apuntar, p.ej. así:
[Route("Blog/Update", Name = "UpdateBlogEntry")]
public IActionResult Update()
{
.....
Nuevamente, el atributo action simplemente será llenado con la URL apropiada:
<form method="post" action="/Blog/Update">
.....
Anexando parámetros de ruteo
La ruta a la que deseas apuntar podría tener uno o más parámetros que pudieras necesitar pasar desde tu Forma. Esto puede lograse usando la siguiente sintaxis:
asp-route-[parameter-name]="value"
Así, si el nombre de tu parámetro es id, entonces la etiqueta FORMA debería verse como sigue:
<form method="post" asp-route="UpdateBlogEntry" asp-route-id="42"></form>
Por supuesto, en la mayoría de las situaciones, el valor debería ser dinámico y venir de p.ej. tu Modelo, como sigue:
<form method="post" asp-route="UpdateBlogEntry" asp-route-id="@Model.Id"></form>
El resultado se verá como a continuación:
<form method="post" action="/Blog/Update?id=42">
.....
Más opciones
Estos fueron los atributos mas relevantes y comúnmente usados para los "Tag Helper" para Formularios. Para una completa lista de opciones y posibilidades, por favor revise la siguiente documentación.
Sumario
Los "Tag Helpers" para FORMAS te ayudan a general la Forma HTML correcta, mientras que además agregan seguridad a tu solución con fichas de verificación de solicitudes que se agregar automáticamente.