NET MVC5
En este tutorial, aprenderá:
1. Cómo crear el proyecto MVC5 de ASP.NET
2. Cómo cambiar la autenticación
Escenario del proyecto
Aquí, voy a desarrollar un proyecto en ComputerShop, en el que implementaré los siguientes módulos.
1. Entrada de artículos
2. Gestión de stock
3. Sistema de facturación
Todos estos módulos serán cubiertos a través de todo el tutorial. Aquí, en este capítulo, crearemos un proyecto
CompShop ASP.NET MVC5 y haremos lo siguiente.
A . C REAR NUEVO PROYECTO COMPS HOP
4. En la siguiente ventana, seleccione Plantilla MVC y cambie la autenticación a Sin autenticación . Ahora, haga
clic en Aceptar y Aceptar . Ahora su proyecto ha sido abierto en Visual Studio.
CAMBIAR EL ESTILO Y TÍTULO DE LA PÁGINA DE INICIO
Paso 1: Ve al Explorador de soluciones Puntos de vista Inicio y abierto Index.cshtml.
Paso 2:cambia la página de la siguiente manera:
Explorador de la solución
App_Start : contiene archivos de clase que se ejecutan cuando se inicia la aplicación. Normalmente es
ficheros de configuración como BundleConfig.cs, AuthConfig.cs, FilterConfig.csetc.
Content - Contiene archivos estáticos como css files, images and icon.
Controllers : contiene archivos de clase que manejan la solicitud y respuesta del usuario. Todo el
nombre de archivo del controlador termina con la palabra Controller como HomeController,
LoginController, ProfileControlleretc.
Models : contiene archivos de clase de modelo que manejan la tarea de la base de datos.
Views - Contiene archivos HTML. Puede haber una carpeta separada para cada controlador. Para
HomeController.cs; Hay carpeta de inicio dentro de la carpeta de vista.
Global.json : este archivo se usa para agregar dependencias o agregar una referencia externa de
proyectos a su proyecto actual. Especifica la ruta donde el sistema debe buscar la carpeta de
dependencia.
Project.json : el archivo Project.json en el núcleo de asp.net se utiliza para definir los metadatos del
proyecto, la información de compilación y las dependencias.
Global.asax - Te permite escribir código en los eventos de nivel de aplicación, tales como
Application_BeginRequest, application_start, application_error, sesson_start, sesson_endetc.
Package.config : es administrado por NuGet para realizar un seguimiento de los paquetes y las
versiones que ha instalado en la aplicación.
Explicación: Este controlador se ejecutará cuando el usuario navegue por la siguiente url:
http: // localhost:1233 / Item / index
En el enlace anterior, el Item es controller y el index es action method.
Cuando el usuario haga clic en el enlace, buscará ItemController con el método de acción Index(). Los
controladores mantienen el método de acción que se ejecuta cuando el usuario los necesita. Debe haber una página
ViewPage Index.cshtml en la carpeta de elementos; de lo contrario, aparecerá un mensaje de error.
4. Output
Todos los tipos de métodos de acción (Action Methods) en asp.net mvc
En este capítulo, aprenderá:
1. ¿Qué son los Action Methods o métodos de acción en ASP.NET MVC?
2. Usos de los métodos de acción
3. ¿Cuántos tipos de métodos de acción en MVC?
4. Ejemplo
Ejemplo
1. ViewResult
Salida
JavaScriptResultar
Devuelve el script java que se puede ejecutar en el navegador del cliente. Envía contenido javascript
en respuesta al navegador. Este bloque le permite ejecutar el script java en el cliente en tiempo de
ejecución.
Ejemplo:
Paso 1: Agregue este método JavaScriptResult()en el controlador home.
Paso 2: Abre Index.cshtml y agrega el siguiente código resaltado.
Salida
Content Result
Devuelve el tipo de contenido definido por el usuario. Es útil cuando desea enviar algún mensaje de
texto sin formato a la pantalla del navegador.
Salida
File Result
Representa el contenido del archivo.
Paso 1: Agregue el siguiente código en HomeControllers
Salida
PartialViewResult
Devuelve HTML desde vista parcial.
Paso 1: Añadir una página parcial. Ir al Solution Explorer Shared. Right-click sobre él y seleccione
Add View.
Paso 2: Crea una página de vista parcial como se describe en esta imagen.
Salida
Filtros de acción
Un ejemplo muy clásico del uso de Actions Filters es en la Autorización de usuarios registrados
ENTENDIMIENTO LO BÁSICO
Views es una carpeta en la estructura MVC que contiene el archivo .cshtml y el diseño que se usa para mostrar y
representar páginas web en las computadoras del usuario.
La carpeta Views mantiene una carpeta separada para cada controlador y cada carpeta mantiene diferentes páginas
.cshtml para todos los métodos de acción pertenecen a ese controlador. El nombre de las carpetas de vistas es el
mismo que el nombre de los controladores y el nombre de las páginas .cshtml igual que los métodos de acción.
Existen 2 métodos más populares para agregar una View Pages en ASP.NET MVC
Puede agregar directamente una página ViewPage
O, Agregar una ViewPage desde el controlador.
Antes de agregar o crear una página de vista, debe comprender las siguientes reglas y pautas para agregar una
página de vista (ViewPage) .
1. Las ViewPage deben referirse a un método de acción del controlador. Si ha agregado una página de vista pero no
creó un método de acción en el controlador, obtendrá un error HTTP 404. Esto se debe a que, en MVC, el
controlador administra la solicitud del usuario y devuelve una respuesta al usuario. Por lo tanto, si el método de
acción no está disponible en un controlador, el controlador devolverá el mensaje de error HTTP 404.
Entendámoslo con un ejemplo real.
a) Supongamos que abre el siguiente enlace:
localhost:1233/Home/Enquiry
Aquí, localhost:1233 es el nombre de su aplicación o dominio
Home es controlador y
Enquiry es Método de acción .
b) La solicitud va primero al Home Controller y encuentra el Método de Acción Enquiry.
c) Si el Método de Acción Enquiry se encuentra en el Controlador Home, buscará Enquiry.cshtml
Ver las páginas de la carpeta Home.
d) Debe recordar que cada Controlador debe tener una carpeta en Views con el mismo nombre que el
nombre del controlador. Y, cada carpeta en View debe tener las páginas de vista .cshtml con el mismo
nombre que los métodos de acción.
e) Si hay un Método de Acción Enquiry en el Controlador Home, debe haber una Vew Enquiry.cshtml
en la carpeta de Views Home.
2. El nombre del Controller y el nombre de la carpeta Views deben ser iguales.
3. El método de acción y el archivo .cshtml deben tener el mismo nombre.
Ejemplo:
1. Abra HomeController.cs y agregue el siguiente código.
2. Ahora, haga clic derecho en Método de acción Enquiry()y elija Add View.
3. El cuadro de diálogo Add View se abrirá. No cambies el nombre de la View y debería nombrarse
como Enquiry. Seleccione Empty (without model) en el cuadro combinado Plantilla y haga clic en
Add.
4. Verás que Enquiry.cshtml se agrega en la carpeta Home.
Corregirlo.
7. Ir a Controllers HomeController.cs y añade el siguiente código en él.
8. Ahora, ejecute su proyecto, verá la página de compra en lugar de la página de error 404.
Salida:
Cree un diseño de página maestra
En este capítulo, aprenderá:
1. Cómo crear un diseño de página maestra en ASP.NET MVC
2. Guía paso a paso para crear la página maestra
3. Cómo cambiar el diseño predeterminado.
Nota: Crear un diseño de MasterPage es muy fácil. Simplemente diseñe la _YourLayout.cshtml página en
Carpeta Shared e inserte placeholder para el área que desea dinamizar. ¡Cómo! Aquí están los pasos.
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>@ViewBag.Title</title>
</head>
<body style="background-color:burlywood">
nav {
float: left;
width: 200px;
height: 250px;
background-color: darkgoldenrod;
}
.content {
background-color: aliceblue;
padding: 20px;
}
footer {
background-color: green;
width: 100%;
height: 50px;
float: right;
text-align: center;
}
</style>
</body>
</html>
Paso 5: crear una nueva página de vista y agregar esta página de diseño en ella. Primero abre
HomeController.cs y agrega el siguiente código para agregar la página de vista.
Paso 6: Ahora, haga clic derecho en este método de acción DarkLayouPage () y seleccione Add
View.
Paso 7: Indique el nombre de la vista: DarkLayoutPage y seleccione Empty Template como se
muestra en la siguiente imagen. Seleccione Use a layout page checkbox y hacer clic en el botón
browse.
Cuando agrega contenido en la View Page DarkLayoutPage , se mostrará en el área de contenido y el diseño del
encabezado, pie de página y barra lateral será el mismo. Puede crear muchas páginas de diseño en una carpeta
compartida.
Si desea agregar este diseño a otra página que ya está creada, agregue el siguiente código en la parte superior de la
página.
Entendamos el código
No hay nada que entender en el código anterior. Simplemente diseñe, el diseño de su página en la carpeta
Compartida e inserte placeholder @RenderBody()para inyectar contenido desde una página secundaria.
Cómo cambiar el diseño predeterminado
Para cambiar la página de diseño por defecto, siga los siguientes pasos.
1. Abra el Solution Explorer Views _ViewStart.cshtml.
2. Cambie su nombre de diseño aquí.
También puede tomar ayuda para crear una página maestra de este asombroso artículo paso a paso.
Este artículo explica cómo usar y aplicar un tema css externo en el diseño de la página maestra.
https://www.completecsharptutorial.com/mvc-articles/mvc-design-master-page-layout-with-css-html-
template/
@RENDERBODY
@RenderBody se utiliza para inyectar contenido de una página secundaria en el diseño de la página maestra. Si no
hay una sección con nombre en la página secundaria, el contenido se mostrará en la sección RenderBody.
Ejemplo:
Salida
@RENDERSECTION
@RenderSection se utiliza para inyectar contenido en la sección definida. Te permite especificar una región en
Layout.
Hay dos pasos para definir @RenderSection en ASP.NET MVC.
A. Especifique un @RenderSection área en la página de diseño.
B. Use esta sección específica para inyectar contenido de una página secundaria.
Nota: el orden no importa. Se puede usar @section Footer antes @section Note y la salida sería la misma.
Te has dado cuenta de que se ha usado un parámetro falso al crear una sección en la página de diseño.
@RenderSection("Footer", false)
el parámetro falso indica que la sección de pie de página es opcional y es su elección si lo usa o no. Si usa el
parámetro verdadero, entonces es obligatorio usar esta sección en la página secundaria, de lo contrario obtendrá el
siguiente error.
[HttpException (0x80004005): Section not defined: "Footer".]
Salida:
@RENDERPAGE
@RenderPage se utiliza para llamar a una página dentro de otra página. Por ejemplo, tiene textos y fotos
promocionales, y desea usarlo todo en su página, pero la condición es que las promociones tienen que cambiar con
frecuencia.
Simplemente cree una página que contenga textos y fotos promocionales y use esta página donde quiera que quiera
insertar. Cuando la página web se renderice en el navegador, mostrará todo el contenido de esa página. Cuando
desee cambiar los textos promocionales, simplemente cámbielo en un lugar y reflejará todas las páginas.
Ejemplo:
1. Ir a ver Carpeta View Shared y crear _StaticPromotionalPage.
2. Agregue el siguiente código en esta página.
COMPLETE CODE
1. View Shared _DarkLayout.cshtml
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>@ViewBag.Title</title>
</head>
<body style="background-color:burlywood">
nav {
float: left;
width: 200px;
height: 250px;
background-color: darkgoldenrod;
}
.content {
background-color: aliceblue;
padding: 20px;
}
footer {
background-color: green;
width: 100%;
height: 50px;
float: right;
text-align: center;
}
</style>
</body>
</html>
2. Views Home DarkLayoutPage.cshtml
@{
ViewBag.Title = "DarkLayoutPage";
Layout = "~/Views/Shared/_DarkLayout.cshtml";
}
<h2>DarkLayoutPage</h2>
@RenderPage("~/Views/Shared/_StaticPromotionalPage.cshtml")
@section Note
{
I am a RenderSectionArea.
}
@section Footer
{
I am Footer Section Areas.
}
<h2>Hello world</h2>
3. Controllers HomeController.cs
using System.Web.Mvc;
namespace CompShop.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
Header.cshtml
5. Llama a esta página parcial dentro de la _Layout.cshtml página como esta.
_Layout.cshtml
3. Las variables se declaran con la palabra clave var y todas las declaraciones de código terminan
con un punto y coma (;) .
Ejemplo
VIEWBAG
EJEMPLO
1. Abra Visual Studio y cree un nuevo proyecto MVC 5. He abierto mi proyecto actual CompShop Application.
2. Ir al controlador HomeController.cs
3. Busque Index ActionResult y escriba el siguiente código.
4. Ahora ve a Views Home Index.cshtml y abrirlo. Aquí, escriba el siguiente código para acceder a los datos
del controlador.
Salida:
VIEWDATA
ViewData también se usa para enviar información de los controladores a las vistas.
Algún hecho sobre ViewData
1. También se utiliza para enviar información desde los controladores a las vistas.
2. Una vez que envía información, se vuelve nula.
3. ViewData es un objeto de diccionario que se deriva de ViewDataDictionary.
4. ViewData utiliza el par clave-valor para almacenar y recuperar información.
5. Requiere encasillado para un tipo de datos complejo.
@ViewData["FirstValue"]
Ejemplo
En HomeController.cs
En Index.cshtmlpáginas vistas
TEMPDATA
TempData también se usa para enviar datos desde los controladores para ver, pero es un poco diferente de ViewBag
y ViewData. TempData se utiliza principalmente para transferir valor de un controlador a otro controlador. Es más
útil cuando redirige una página a otra y desea enviar información junto con ella. Tiene una vida más larga que
ViewBag y ViewData y puede acceder al valor TempData en 2 a 3 Solicitudes HTTP.
A veces, es posible que desee pasar valor de los controladores a la página de vista redirigida. Esta página de vista
puede pertenecer a otro controlador. Por ejemplo:
1. Usted solicita información de inicio de sesión en la página de inicio de sesión.
2. Valide la entrada del usuario en un controlador.
3. Si la validación es verdadera, redirecciona el control a una página interna con algunos datos. Estos datos pueden
utilizarse para mostrar información de inicio de sesión.
Algún hecho sobre TempData
1. TempData usa la sesión internamente para almacenar valor.
2. Debe comprobar si hay nulos antes de usar TempData para evitar el error de tiempo de ejecución.
3. TempData está vivo en dos solicitudes secuenciales. Utiliza el método TempData.Keep () para la tercera
solicitud.
4. TempData también es un objeto de diccionario que almacena información en pares clave-valor. Se deriva de
TempDataDictionary.
Ejemplo
Paso 1 . Creado TempData en los métodos de acción del índice.
Paso 2 . Lo recuperé en el Método Acerca del
Paso 3 . Imprirlo en View Page contacto .
Paso 1: Abra HomeController.cs y escriba el código en los siguientes métodos de acción.
Index()Método de acción
Contact.cshtml página
Salida
a) Cuando ejecute este programa, en la página de índice TempData[“FirstValue”]se llenará de valor.
b) Cuando haga clic en el enlace Acerca de , se le redirigirá a la página de contacto y mostrará la información.
c) Cuando vuelva a hacer clic en el enlace Acerca de , no redirigirá su página de contacto y le mostrará la
página.
d) Después de eso, si hace clic en la página de Contacto , no verá ninguna información de TempData
["FirstValue"] .
e) Haga clic varias veces en el enlace Índice, Acerca de y Contacto y trate de examinar el resultado y las
diferencias.
MODELOS
AÑADIENDO UN MODELO
Abra el proyecto actual CompShop para agregar un modelo. Si no ha creado la aplicación CompShop anteriormente,
cree un nuevo Proyecto MVC con su nombre preferido.
Paso 1: Abra el Explorador de soluciones y busque la carpeta de Models. Si la Carpeta Models no
está allí, simplemente cree una nueva carpeta: Models. Después de que haga clic derecho en Model
Add Class…
Paso 2: Crea una nueva clase ItemList.cs y haz clic en el botón Add .
Aquí, en este código, se ha codificado los datos para que estos datos puedan usarse en las vistas. Porque no se esta
usando una base de datos, así que se ha agregado los datos manualmente a los modelos.
Paso 7: Ahora, haga clic derecho en el método de acción Index()y haga clic en Add vista. Indique
el nombre de la vista: Index y haga clic en el botón Add .
Paso 8: Ahora, abra la página Index.cshtml desde la carpeta del elemento y agregue el siguiente
código en ella.
Paso 9: Ejecute el proyecto y navegue a http://localhost:1233/Item/Index
Insertar, Actualizar, Eliminar utilizando Modelos sin EF
En este capítulo, aprenderá:
1. ¿Cómo acceder a la base de datos y las tablas utilizando el Modelo sin Entity Framework 6?
2. ¿Cómo insertar, actualizar y eliminar de tablas sin Entity Framework?
Entity Framework es una herramienta muy poderosa para la administración de bases de datos que le
permite insertar, actualizar y eliminar en la base de datos fácilmente, pero es muy pesado y limita el
control del desarrollador. Sin Entity Framework, tiene todas las cosas en su mano y tiene control total
sobre su código. En este capítulo, veremos cómo puede comunicarse con la base de datos y Insertar,
Actualizar y Eliminar un registro sin utilizar Entity Framework..
2. Crear mesa
Paso 1: Expanda su base de datos en Server Explorer y haga clic derecho en la Table Add New
Table.
Paso 2: Ahora diseñe la tabla de la siguiente manera o ejecute el siguiente script para agregar la
tabla ItemList en la base de datos.
Script
Paso 3: Ahora tus tablas están creadas. Puedes verlo en Server Explorer.
Paso 3: Abra el archivo Root Web.config y agregue la cadena de conexión antes de </Configuration>
de la siguiente manera.
Code:
<connectionStrings>
<add name="CompShopConString" connectionString="Data Source=.\SQLExpress;Initial
Catalog=CompShopDBwithoutEF;Integrated Security=True;Pooling=False"/>
</connectionStrings>
CREAR CLASE DE MODELO
Ahora, el siguiente paso es crear un modelo para la tabla ItemList . Aquí están los pasos.
Paso 1: Crea una nueva ItemModel.csclase en Model . Haga clic derecho sobre
el Model Add Class…
Code:
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace CompShop.Models
{
public class ItemDBHandler
{
private SqlConnection con;
private void connection()
{
string constring =
ConfigurationManager.ConnectionStrings["CompShopConString"].ToString();
con = new SqlConnection(constring);
}
if (i >= 1)
return true;
else
return false;
}
con.Open();
adapter.Fill(dt);
con.Close();
foreach(DataRow dr in dt.Rows)
{
iList.Add(new ItemModel
{
ID = Convert.ToInt32(dr["ID"]),
Name = Convert.ToString(dr["Name"]),
Category = Convert.ToString(dr["Category"]),
Price = Convert.ToDecimal(dr["Price"])
});
}
return iList;
}
if (i >= 1)
return true;
else
return false;
}
if (i >= 1)
return true;
else
return false;
}
}
}
CREA UN CONTROLADOR: ITEMCONTROLLER.CS
Paso 1: Haga clic derecho en Controllers Add Controller…
using System.Collections.Generic;
using System.Web.Mvc;
using CompShop.Models;
namespace CompShop.Controllers
{
public class ItemController : Controller
{
// 1. *********** Display All Item List in Index Page ***********
public ActionResult Index()
{
ViewBag.ItemList = "Computer Shop Item List Page";
ItemDBHandler IHandler = new ItemDBHandler();
ModelState.Clear();
return View(IHandler.GetItemList());
}
Se ha usado Model class ItemModel para acceder a los datos o almacenar datos. La clase ItemModel usa la clase
ItemDBHandler para procesar el trabajo relacionado con la base de datos. Se ha escrito todo el código relacionado
con la base de datos en la clase ItemDBHandler.cs .
Paso 3: Uso del mismo proceso Add View para los método de acción Create(), Edit(),
Delete()y Details().
Create()
Edit()
Delete()
Details()
EJECUTA TU PROYECTO
Presione F5 para ejecutar su proyecto y navegue hasta el siguiente enlace
http://localhost:1233/Item/Index/
Imagen de salida
Insertar, Actualizar, Eliminar Utilizando Modelos Con Entity Framework
En este capítulo, aprenderá:
1. ¿Cómo crear modelos y conectarse a la base de datos utilizando Entity Framework ?
2. ¿Cómo instalar Entity Framework 6 en su proyecto ASP.NET MVC?
Paso 1: Crear una nueva aplicación ASP.NET MVC5 o abra el proyecto CompShop existente.
Paso 2: Instalar Entity Framework
Entity Framework es una parte esencial de ASP.NET MVC 5 y es una nueva tecnología que maneja todo el trabajo
relacionado con la base de datos muy fácilmente. Usted puede ser maravillado al ver el poder de EF. Instalar EF es
muy fácil. Aquí están los pasos para instalar EF6.
<connectionStrings>
<add name="ItemStockContext" connectionString="Data
Source=.\SQLExpress;Initial Catalog=CompShopDBwithoutEF;Integrated
Security=True;Pooling=False" providerName="System.Data.SqlClient"/>
</connectionStrings>
Paso 9. Ahora, puedes ver en el explorador de soluciones que ItemListController se crea con sus
vistas respectivas.
VIEW MODEL
VIEW MODEL no es nada, solo una clase que llama a todos los modelos en una sola clase y luego devuelve valores
para ver páginas. Se vuelve muy útil cuando tiene varios modelos y desea mostrar su valor en las páginas de una
vista.
using System;
using System.Collections.Generic;
using System.Web.Mvc;
using CompShop.Models;
namespace CompShop.Controllers
{
public class ItemCommentsController : Controller
{
// GET: ItemComments
public ActionResult Index()
{
return View();
}
return CommentsList;
}
namespace CompShop.Controllers
{
public class ItemCommentsController : Controller
{
// GET: ItemComments
public ActionResult Index()
{
return View();
}
return CommentsList;
}
// *** 3. This Method retrieves Items and Comments, and returns to Views.
public ActionResult ItemCommentDisplay()
{
ItemCommentsViewModel IBCM = new ItemCommentsViewModel();
IBCM.item = GetItemDetails();
IBCM.comments = GetCommentList();
return View(IBCM);
}
}
}
Paso 3: Haga clic con el botón derecho en Método de acción ItemCommentDisplay y seleccione
Add View...
Paso 4: establezca el valor como se muestra en esta imagen a continuación y haga clic en Add:
Antes de iniciar esta sección, debe crear las siguientes clases de modelo y controladores. Si ya lo ha
creado en el capítulo anterior, omita la creación de estos modelos y controladores.
using System;
using System.Collections.Generic;
using System.Web.Mvc;
using CompShop.Models;
namespace CompShop.Controllers
{
public class ItemCommentsController : Controller
{
// GET: ItemComments
public ActionResult Index()
{
return View();
}
return CommentsList;
}
Paso 2: Haz clic derecho en Método de acción ItemCommentDisplay() y crea una View.
Paso 4: Ahora, agregue el siguiente código en la ItemCommentDisplay.cshtml página de
visualización.
Salida:
http://localhost:1233/ItemComments/ItemCommentDisplay
VIEWDATA
ViewData es casi igual a ViewBag y también se usa para pasar datos de los modelos / controladores
para View. Almacena los datos en el par clave-valor y también está disponible solo para la solicitud
actual. Significa que, si se produce la redirección, el valor de ViewData se vuelve nulo. Debe verificar
los tipos de datos complejos nulos y de cadena de tipos para evitar errores.
Ejemplo: acceder a los datos del modelo para ver
Paso 1: Vaya ItemCommentsController.csy agregue el siguiente método de acción highlighted.
namespace CompShop.Controllers
{
public class ItemCommentsController : Controller
{
// GET: ItemComments
public ActionResult Index()
{
return View();
}
return CommentsList;
}
Paso 2: Haz clic derecho en el Método de acción ItemCommentDisplay()y crea una vista.
Paso 4: Ahora, agregue el siguiente código en la ItemCommentDisplay.cshtmlpágina de
visualización.
Salida
http://localhost:1233/ItemComments/ItemCommentDisplay
TUPLES: ¿QUÉ SON LAS TUPLES EN ASP.NET MVC?
Las tuples se introducen por primera vez en .NET Framework 4.0. Es un objeto de secuencia inmutable, de tamaño
fijo y ordenado. Es una estructura de datos que tiene un número y una secuencia de elementos específicos y admite
hasta de 7 a 8 elementos. Puede usar Tuples para pasar varios modelos en una sola página de vista.
Paso 1: Ve ItemCommentsController.cs y cambia el método de acción ItemCommentDisplay().
Las tuples admiten un máximo de 7 a 8 elementos; así que pase los modelos entre paréntesis Tuple<model1,
model2, model3,….model7> y luego pase el respectivo método de acción en secuencia que se asigna con el
modelo, como (function1, function2, function3,….function7) . Aquí, hice lo mismo. Solo mira este
código a continuación. Aquí he pasado mis modelos y sus respectivos métodos de acción en secuencia.
En el capítulo anterior, aprendió cómo pasar datos de modelos a vistas usando Session, Tuples y
Dynamic (ExpandoObject) . En este capítulo, aprenderá a pasar datos entre modelos, controladores y
vistas utilizando la acción de renderización y la propiedad de navegación en ASP.NET MVC.
1. Usando el sistema;
2. espacio de nombres CompShop . Modelos
3. {
4. clase p ú blica ItemModel
5. {
6. ID p ú blica int { Obtener ; conjunto; }
7. cadena p ú blica Nombre { get ; conjunto; }
8. Cadena p ú blica Cat í un { Obtener ; conjunto; }
9. Precio decimal p ú blico { Obtener ; conjunto; }
10. }
11. }
1. utilizando el sistema;
2. espacio de nombres CompShop . Modelos
3. {
4. Clase p ú blica CompradoresComentariosModelo
5. {
6. public int BuyersID { get ; conjunto; }
7. cadena p ú blica BuyersName { get ; conjunto; }
8. cadena p ú blica StarRating { get ; conjunto; }
9. cadena p ú blica ComentariosTítulo { conseguir ; conjunto; }
10. cadena p ú blica Comentarios { conseguir ; conjunto; }
11. public DateTime Date { get ; conjunto; }
12. }
13. }
Y 1 clase de controlador:
ItemCommentsController : recuperará artículos y comentarios de modelos. He añadido algunos
elementos y comentarios en la clase de controlador para reducir la complejidad. Usando el mismo
método puede mostrar el valor de la base de datos para ver las páginas.
1. utilizando el sistema;
2. Utilizando el sistema . Colecciones . genérica ;
3. Utilizando el sistema . Web . Mvc ;
4. utilizando CompShop . Modelos ;
5.
6. espacio de nombres CompShop . Controladores
7. {
8. Clase p ú blica ItemCommentsController : Controlador
9. {
10. // GET: ItemComments
11. Í ndice de ActionResult p ú blico ()
12. {
13. volver Ver ();
14. }
15.
16. Public ItemModel GetItemDetails ()
17. {
18. ItemModel iModel = new ItemModel ()
19. {
20. ID = 1 ,
21. Nombre = "Impresora HP" ,
22. Categor í a = "ComputerParts" ,
23. Precio = 8840
24. };
25. devuelve iModel ;
26. }
27.
28. Lista p ú blica < BuyersCommentsModel > GetCommentList ()
29. {
30. Lista < BuyersCommentsModel > CommentsList = new List < BuyersCommentsModel > ();
31. Lista de comentarios . Add ( nuevo BuyersCommentsModel () { BuyersID = 1 , BuyersName = "John" , Sta
rRating = "4" , CommentsTitle = "Nice Product" , Comments = "Lo compré hace 1 semana y está funcionando bi
en bien" , Fecha = Convert . ToDateTime ( "27 de agosto de 17" )});
32. Lista de comentarios . Agregar ( nuevo BuyersCommentsModel () { BuyersID = 2 , BuyersName = "Nicki"
, StarRating = "2" , CommentsTitle = "Worst Product" , Comments = "Worst Product. No lo compre. Me dañé."
, Fecha = Convert . ToDateTime ( "12 de junio de 17" )});
33. Lista de comentarios . Add ( nuevo BuyersCommentsModel () { BuyersID = 3 , BuyersName = "Serena" , S
tarRating = "3.5" , CommentsTitle = "Satisfactory" , Comments = "Adelante. Hace el mismo trabajo y tiene e
l menor precio" , Fecha = Convert . ToDateTime ( "18 de marzo de 17" )});
34. Lista de comentarios . Add ( nuevo BuyersCommentsModel () { BuyersID = 4 , BuyersName = "William" ,
StarRating = "4.5" , CommentsTitle = "Superrr !!!" , Comments = "No piense y compre con confianza." , Fech
a = Convert . ToDateTime ( "11 de noviembre 16" )});
35.
36. devuelve la lista de comentarios ;
37. }
38.
39. Public ActionResult ItemCommentDisplay ()
40. {
41. }
42. }
43. }
RENDERIZAR ACCIÓN
Qué es Render Action
La acción de representación es un método de controlador especial que incluye una vista parcial en la
página de vista principal. Si desea mostrar varios modelos en una sola página de vista, puede usar los
métodos de acción de renderizado para hacerlo.
Paso 1: Cree una página parcial para cada modelo y visualice la información de los modelos en esa
página parcial.
Paso 2: ahora llame a todas esas páginas parciales dentro de una página de vista principal usando el
Método de acción de renderizado.
Ejemplo de acción de render
Paso 1: Vaya ItemCommentsController.csy agregue el siguiente método de acción resaltado.
1. @ {
2. Html . RenderAction ( "RenderItem" );
3. Html . RenderAction ( "RenderComment" );
4. }
La propiedad de navegación enlaza dos o más modelos relacionados. Si dos modelos están
relacionados, puede vincular un modelo a otro modelo como propiedad. Al vincular los modelos como
propiedad, puede acceder al miembro de ambos modelos llamando solo al modelo principal.
GetItemDetails
ItemCommentDisplay ()
RESUMEN
En este capítulo, aprendió cómo pasar datos de múltiples modelos a una página de vista única usando
la acción de representación y la propiedad de navegación . En esta sección completa, le enseñé
varias formas de pasar datos de múltiples modelos a una sola página de vista. Espero que no enfrente
ningún problema en el futuro cuando se trata de pasar datos entre modelos y vistas. En el siguiente
capítulo, he agregado los temas muy importantes de ASP.NET MVC y es Trabajar con formularios en
ASP.NET MVC. Si cubre el siguiente capítulo, podrá comunicarse con la base de datos utilizando
formularios en ASP.NET MVC.
Preparar
Paso 1: Crear un nuevo ASP.NET MVC Project MvcForms. Ir al archivo Nuevo Proyecto . Si no sabe
cómo crear un nuevo proyecto mvc, consulte este capítulo.
Crear nuevo proyecto ASP.NET MVC 5
Paso 2: Crea una clase modelo StudentModel.cs. Haga clic derecho en el modelo Añadir Clase .
Paso 3: Abra StudentModel.cs y agregue el siguiente código en él.
1. [HttpPost]
2. public ActionResult form1 ( int txtId , string txtName , string chkAddon )
3. {
4. ViewBag . Id = txtId ;
5. ViewBag . Nombre = txtName ;
6. if ( chkAddon ! = null )
7. ViewBag . Addon = "Seleccionado" ;
8. m á s
9. ViewBag . Addon = "No seleccionado" ;
10.
11. Vista de retorno ( "Índice" );
12. }
Salida:
Entendamos
Desventaja:
1. Porque, no está fuertemente tipado, por lo que IntelliSense no te ayuda.
2. Tener mayor probabilidad de obtener mensajes de error de excepción y de tiempo de ejecución.
3. Muy difícil de administrar cuando los formularios tienen múltiples elementos de entrada y controles.
4. Es muy torpe cuando necesita agregar o eliminar algunos elementos de entrada.
En este método, enviamos objetos (modelo) en lugar de enviar cada elemento como parámetro. Es fácil
de mantener porque no necesita recordar cada elemento de entrada e IntelliSense le mostrará
automáticamente cada elemento.
1. @model MvcForms.Models.StudentModel
2. < h4 style = "color: purple" >
3. <b> ID : < / b> @ ViewBag.ID <br />
4. <b> Nombre : < / b> @ ViewBag.Name <br />
5. <b> Complemento : </ b > @ViewBag . Añadir
6. </ h4 >
7. < hr />
8. <h3> <b> Formas : fuertemente tipadas < / b> </ h3 >
9.
10. @using ( Html . BeginForm ( "Form2" , "Home" , FormMethod . Post ))
11. {
12. <table>
13. <tr>
14. <td> Introduzca ID : </ td >
15. <td> @Html . TextBoxFor ( m => m . Id ) </ td >
16. </ tr >
17. <tr>
18. <td> Introduzca el nombre : </ td >
19. <td> @Html . TextBoxFor ( m => m . Nombre ) </ td >
20. </ tr >
21. <tr>
22. <td> Complemento : </ td >
23. <td> @Html . CheckBoxFor ( m => m . Addon ) </ td >
24. </ tr >
25. <tr>
26. < td colspan = "2" > < input type = "submit" value = "Submit Form" /> </ td >
27. </ tr >
28. </ table >
1. [HttpPost]
2. P ú blico ActionResult Form2 ( Models . StudentModel sm )
3. {
4. ViewBag . Id = sm . Id ;
5. ViewBag . Nombre = sm . Nombre ;
6. if ( sm . Addon == true )
7. ViewBag . Addon = "Seleccionado" ;
8. m á s
9. ViewBag . Addon = "No seleccionado" ;
10.
11. Vista de retorno ( "Índice" );
12. }
Salida Entendámoslo en el Formulario 1. Se utiliza para crear formularios fuertemente tipados. Tiene
El formulario AJAX asíncrono es una forma muy mágica de enviar datos al controlador sin que ocurra
una carga de página. Los formularios AJAX asíncronos simplemente devuelven los datos a los
controladores y actualizan solo esa parte de la página, que debe mostrar la salida.
Para que esto suceda, utilizaremos JQuery-Unobstrusive-AJAX . Esta es una gran característica que
se lanza en MVC 3. Le ayuda a crear el formulario AJAX sin escribir un montón de código javascript.
Antes de crear el formulario AJAX asíncrono, debe agregar JQuery-Unobstrusive-AJAX en su
proyecto. Añadir es muy fácil y solo sigue los pasos.
Añadiendo JQuery-Unobstrusive-AJAX
Paso 1: haga clic con el botón derecho en el nombre de su proyecto en el Explorador de soluciones
y haga clic en Administrar paquetes Nuget ...
Paso 2: Vaya a Examinar y busque ajax . Busque e instale Microsoft-JQuery-Unobstrusive-Ajax .
1. <script src = "@ Url.Content (" ~ / Scripts / jquery-1.10.2.min.js ")" type = "text / javascript"> </scrip
t>
2. <script src = "@ Url.Content (" ~ / Scripts / jquery . unobtrusive-ajax . js ")" type = "text / javascript
" > </script>
2.
1. @using (Ajax.BeginForm ("Form3", "Home", nuevas AjaxOptions ( Ajax . BeginForm ( "Form3" , "Inicio" , nuev
as AjaxOptions
2. {
3. HttpMethod = "POST" ,
4. UpdateTargetId = "id1" ,
5. LoadingElementId = "LoadingImage" ,
6. OnSuccess = "onSuccess_Message" ,
7. OnFailure = "onFailure_Message"
8.
9. }))
1. [HttpPost]
2. Public ActionResult Form3 ( Models . StudentModel sm )
3. {
4. if ( ModelState . IsValid )
5. {
6. Sistema . Texto . StringBuilder sb = nuevo sistema . Texto . StringBuilder ();
7. sb . Añadir ( "ID:" + sm . Id + "<br />" );
8. sb . Agregue ( "Nombre:" + sm . Nombre + "<br />" );
9. sb . Append ( "Addon:" + sm . Addon + "<br />" );
10. Contenido de retorno ( sb . ToString ());
11. }
12. más
13. {
14. Vista de retorno ( "Índice" );
15. }
16. }
4. FORMAS HTML PURAS CON AJAX Y JQUERY
En este método, no solo puede enviar datos desde los controles de entrada, sino que también puede
usar elementos html como <p> ... </p>, <span> ... </span> para enviar datos a los controladores. Esto
es pura consulta de JQuery y AJAX.
Crear formularios
Paso 1. Ve Index.cshtmly crea una forma como esta.
1. <h3> <b> Formularios - HTML puro y JQUERY </b> </h3>Formularios - HTML puro y JQUERY </b> </h3>
2.
3. <table>
4. <tr>
5. <td> Introduzca ID: </td>
6. <td> <input type = "text" id = "Id" /> </td>
7. </tr>
8. <tr>
9. <td> Introduzca el nombre: </td>
10. <td> <input type = "text" id = "Name" /> </td>
11. </tr>
12. <tr>
13. <td> Complemento: </td>
14. <td> <input type = "checkbox" id = "Addon" /> </td>
15. </tr>
16. <tr>
17. <td colspan = "2" > <button onclick = " submit () " > Enviar formulario </button> </td>
18. </tr>
19. </table>
20.
21. <h4 style = " color : purple " id = "output" > </h4>
22.
23. <script src = "~ / Scripts / jquery-1.10.2.min.js" type = "text / javascript" > </script>
24. <script>
25. función submit () {
26. var data = {
27. Id : $ ( '#Id' ). val (),
28. Nombre : $ ( '#Nombre' ). val (),
29. Addon : $ ( '#Addon' ). es ( ': marcado' )
30. };
31.
32. $ . post ( "/ Home / Form4" , { sm : data }, function () { alert ( 'Successfully Saved' ) });
33. }
34. </script>
1. [HttpPost] HttpPost ]
2. pública ActionResult Form4 ( StudentModel sm )
3. {
4. string value = "ID:" + Convert . ToString ( sm . Id )
5. + "<br /> Nombre:" + sm . Nombre
6. + "<br /> Complemento:" + Convertir . ToString ( sm . Addon );
7.
8. cadena s = "$ ('# output'). html ('" + value + "');" ;
9. devuelve JavaScript ( s );
10. }
$.post()
a. /Home/Form4- Home es el nombre del controlador y Form4 es un método de acción.
segundo. sm: data- smEs un objeto de StudenModelen Form4 Action Method.
RESUMEN
En este tutorial, aprendió 4 formas diferentes de crear un formulario y enviar datos al controlador. Todas
estas 4 formas se utilizan ampliamente en MVC y espero que ahora puedan crear un formulario en
ASP.NET MVC. En el siguiente capítulo, aprenderá el objeto FormCollection en detalle con el ejemplo
de programación. Los objetos FormCollection facilitan mucho el trabajo al recopilar datos de formulario
en el controlador.
Paso 3: Ir a Vistas Casa Index.cshtml y añada el siguiente código para crear el formulario.
1. [HttpPost]
2. Public ActionResult Submit ( FormCollection fc )
3. {
4. ViewBag . Id = fc [ "Id" ];
5. ViewBag . Nombre = fc [ "Nombre" ];
6. bool chk = Convertir . ToBoolean ( fc [ "Addon" ]. Split ( ',' ) [ 0 ]);
7. ViewBag . Addon = chk ;
8.
9. Vista de retorno ( "Índice" );
10. }
Paso 5: Ejecute su proyecto. Entendamos este código 1. Creé formularios MVC simples usando
HTML Helper 2. En el Método de acción Enviar, he inicializado el objeto FormCollection . 3. Se puede
acceder al valor de FormCollection dando control de entrada o número de índice . 4. Si no va a dividir
el valor booleano, obtendrá ambos resultados, por eso reuní el valor de la casilla de verificación en la
variable de tipo booleano y los dividí.
fc
"id"
"true, false"
bool chk = Convert.ToBoolean(fc["Addon"].Split(',')[0]);
RESUMEN
En este capítulo, traté de enseñarle el objeto FormCollection con un ejemplo fácil y completo. En el
siguiente capítulo, aprenderá las técnicas de validación de formularios en ASP.NET MVC.
HTTPGET
El método HttpGet envía datos utilizando una cadena de consulta. Los datos se adjuntan a la URL y es
visible para todos los usuarios. Sin embargo, no es seguro pero es rápido y rápido. Se utiliza
principalmente cuando no está publicando datos confidenciales en el servidor como nombre de usuario,
contraseña, información de la tarjeta de crédito, etc.
Ejemplo
StudentModel.cs
Index.cshtml Formar
HomeController
1. [HttpGet]
2. Public ActionResult Submit ( int id , string name )
3. {
4. ViewBag . Id = id ;
5. ViewBag . Nombre = nombre ;
6. Vista de retorno ( "Índice" );
7. }
Cuando ejecute la aplicación y pase el valor con el método HttpGet, verá que los datos se adjuntan a la
URL mediante la cadena de consulta.
Imagen de salida
HTTPPOST
El método HTTPPost oculta la información de la URL y no vincula los datos a la URL. Es más seguro
que el método HttpGet pero es más lento que HttpGet. Solo es útil cuando está pasando información
confidencial al servidor.
Algún hecho sobre el método HttpPost
Ejemplo
StudentModel.cs
Index.cshtml Formar
HomeController.cs
1. [HttpPost] HttpPost ]
2. pública ActionResult Enviar ( FormCollection fc )
3. {
4. ViewBag . Id = fc [ "Id" ];
5. ViewBag . Nombre = fc [ "Nombre" ];
6. Vista de retorno ( "Índice" );
7. }
Mira esta estructura de URL. Notará que no hay datos adjuntos a la URL.
RESUMEN
En este capítulo, traté de explicar los métodos HTTPGET y HTTPPOST con un ejemplo. También he
explicado el hecho y las diferencias entre estos dos métodos. Espero que ahora puedas entender dónde
usar los métodos HttpGet y HttpPost. En el siguiente capítulo, aprenderá el enlace de modelos en
ASP.NET MVC 5.
¿Alguna vez se ha preguntado cómo los datos del formulario se vinculan automáticamente con las
propiedades del modelo? Veamos la imagen de abajo:
En este tutorial, analizaré varias técnicas de enlace de modelos que lo ayudarán a acceder a los datos
de entrada en modelos y controladores.
1. Sin enlace
2. Enlace simple
3. Enlace de clase
4. Enlace complejo
5. Enlace de FormCollection
6. Atributo de enlace
NO VINCULANTE
Sin vinculación significa acceder a los datos del formulario directamente sin vincular el formulario a un
modelo específico.
Ejemplo:
Modelo: StudentModel.cs
Ver: Index.cshtml
Controlador: HomeController.cs
2. ENCUADERNACIÓN SIMPLE
En el enlace simple, pase el parámetro en el método de acción con el mismo nombre que las
propiedades del modelo y MVC Default Binder asignará automáticamente el método de acción correcto
para la solicitud entrante.
Controlador: HomeController.cs
En Class Binding, pase el modelo como parámetro en el método de acción y luego acceda a su variable
miembro completa.
Controlador: HomeController.cs
4. ENCUADERNACIÓN COMPLEJA
El enlace complejo significa aplicar múltiples modelos relacionados en una sola vista. Aquí, en este
ejemplo, le mostraré cómo enlazar varios modelos en una sola vista.
Ver: Index.cshtml
1. [ HttpGet ]
2. Índice de ActionResult público ()
3. {
4. volver View ();
5. }
6.
7. [ HttpPost ]
8. Índice de ActionResult público ( StudentModel sm )
9. {
10. ViewBag . Id = sm . Id ;
11. ViewBag . Nombre = sm . Nombre ;
12. ViewBag . Curso = sm . CursoModelo . Por supuesto ;
13. ViewBag . Duración = sm . CursoModelo . duración ;
14. Vista de retorno ( "Índice" );
15. }
Salida:
RESUMEN
En este capítulo, discutí el enlace de modelos en MVC con la ayuda de un ejemplo fácil y simple. Sin
embargo, también hay varias formas en que puede enlazar vistas con modelos y controladores.
Simplemente lea este capítulo, si no se siente cómodo transfiriendo datos entre modelos y vistas.
Validación De Formularios En ASP.NET MVC 5 Con Ejemplo
En este capítulo, aprenderá:
La validación significa examinar los datos de entrada del usuario para verificar si,
Una vez, aprenderá todas estas 4 técnicas de validación, podrá validar cualquier campo de entrada en
MVC. He creado una forma muy básica para enseñarte cómo funciona la validación. Sin embargo, más
adelante aprenderá a validar cada campo y valor de entrada, como validar la edad, el correo electrónico
y el número de teléfono móvil. y otro valor.
MÁS ARTÍCULOS
ModelState es una propiedad del controlador que se utiliza para validar la forma en el lado del servidor.
Debe agregar el espacio de nombres System.Web.Mvc para poder usarlo. ModelState es una colección
de pares de nombre y valor que se envió al servidor durante la publicación. También contiene una
colección de mensajes de error para cada valor enviado.
Paso 1. Cree un nuevo proyecto o inicie cualquier proyecto MVC de ASP.NET existente.
1. @ {
2. ViewBag . Título = "Página de inicio - Detalles del estudiante" ;
3. }
4.
5. @model FormValidation . Modelos . StudentModel
6. <h2> Detalles del estudiante </ h2 >
7. @using ( Html . BeginForm ( "StudentDetails" , "Home" , FormMethod . Post ))
8. {
9. <ol>
10. <li>
11. @ Html . LabelFor ( m => m . Nombre )
12. @ Html . TextBoxFor ( m => m . Nombre )
13. @ Html . ValidationMessageFor ( m => m . Nombre )
14. </ li >
15. <li>
16. @ Html . LabelFor ( m => m . Age )
17. @ Html . TextBoxFor ( m => m . Age )
18. @ Html . ValidationMessageFor ( m => m . Age )
19. </ li >
20. </ ol >
21. < input type = "submit" value = "Save Student Details" />
22. }
23.
24. < h3 style = "color: green" > Detalles del estudiante </ h3 >
25. < h4 style = "color: green" >
26. <b> Nombre : @ ViewBag . Nombre < br />
27. <b> Edad : @ ViewBag . edad < br />
28. </ h4 >
1. if (string.IsNullOrEmpty (sm.Name))
2. {
3. Estado del modelo . AddModelError ( "Nombre" , "Nombre requerido" );
4. }
RESUMEN
En este capítulo, aprendió a usar la ModelState.isValidpropiedad para examinar la entrada del
usuario en el lado del servidor. En el siguiente capítulo, aprenderá la validación utilizando Anotación de
datos en MVC.
3. Cómo aplicar la validación del lado del cliente en ASP.NET MVC utilizando la anotación de datos
¿QUÉ ES LA ANOTACIÓN DE DATOS?
La validación de la entrada del usuario no solo es necesaria, sino que también es obligatoria en estos
días. La anotación de datos proporciona una facilidad de verificación de entrada de usuario instantánea
en el lado del cliente y proporciona al desarrollador asp, una amplia gama de atributos de validación.
La anotación de datos hace que el proceso de validación sea fácil y rápido.
Los atributos de Anotación de datos se aplican directamente al miembro de la clase Modelo y esos
miembros están obligados a aceptar entradas de usuario válidas de acuerdo con la Regla de anotación
de datos.
1. Requerido
Especifica que el campo de entrada no puede estar vacío.
Ejemplo:
2. DisplayName
Especifica el nombre para mostrar de una propiedad.
Ejemplo:
3. StringLength
Especifica la longitud mínima y máxima de una propiedad.
Ejemplo:
1. [Rango (1,120, ErrorMessage = "La edad debe estar entre 1-120 en años.")]
2. public int Age { get ; conjunto; }
5. Enlazar
Incluya o excluya el valor al agregar valores de formulario a las propiedades del modelo.
Ejemplo:
6. Scaffolding Columna
Especifica un campo para ocultar de formas de editor.
Ejemplo:
1. [ScaffoldColumn (false)]
2. ID p ú blica int { Obtener ; conjunto; }
7. DisplayFormat
Especifica un formato de visualización para una propiedad como Formato de fecha, Formato de
moneda, etc.
Ejemplo:
8. Sólo lectura
Establece una propiedad a solo lectura.
Ejemplo:
1. [ReadOnly (verdadero)]
2. cadena p ú blica Nombre { get ; conjunto privado; }
9. MaxLength
Especifica la longitud máxima de la cadena.
Ejemplo:
1. [MaxLength (50)]
2. cadena p ú blica Nombre { get ; conjunto; }
1. [DataType (DataType.CreditCard)]
2. cadena p ú blica Nombre { get ; conjunto; }
11. Compara
comparar con otros campos de entrada.
Ejemplo:
13. teléfono
especifica que un valor de campo de entrada es un número de teléfono bien formado usando Expresión
regular.
Ejemplo:
1. [DataType (DataType.PhoneNumber)]
2. [ Expresi ó n regular (@ "^ \ (? ([0-9] {2}) [-.]? ([0-9] {4}) [-.]? ([0-9] {3 }) [-.]? ([0-9] {3}) $ " ,
ErrorMessage = " No es un número de teléfono válido " )]
3. cadena p ú blica Nombre { get ; conjunto; }
1. [Url] [Requerido]
2. URL de Cadena p ú blica { Obtener ; conjunto; }
1. [RegularExpression (@ "[a-z0-9 ._% + -] + @ [a-z0-9 .-] + \. [Az] {2,4}", ErrorMessage = "Formato de corre
o electrónico incorrecto")]
2. Cadena p ú blica Correo electr ó nico { llegar ; conjunto; }
16. DataType
proporciona una lista del tipo de datos que está asociado con el campo de entrada y el parámetro.
Ejemplo:
1. [DataType (DataType.EmailAddress)]
2. Cadena p ú blica Correo electr ó nico { llegar ; conjunto; }
17. HiddenInput
Especifica un campo de entrada oculto.
Ejemplo:
1. @ {
2. ViewBag . Título = "Página de inicio - Detalles del estudiante" ;
3. }
4. < script src = "~ / Scripts / jquery.validate.min.js" > </ script >
5. < script src = "~ / Scripts / jquery-1.10.2.min.js" > </ script >
6. @model FormValidation . Modelos . StudentModel
7. <h2> Detalles del estudiante </ h2 >
8. @using ( Html . BeginForm ( "StudentDetails" , "Home" , FormMethod . Post ))
9. {
10. <ol>
11. <li>
12. @Html . LabelFor ( m => m . Nombre )
13. @Html . TextBoxFor ( m => m . Nombre )
14. @Html . ValidationMessageFor ( m => m . Nombre )
15. </ li >
16. <li>
17. @Html . LabelFor ( m => m . Email )
18. @Html . TextBoxFor ( m => m . Correo electrónico )
19. @Html . ValidationMessageFor ( m => m . Correo electrónico )
20. </ li >
21. <li>
22. @Html . LabelFor ( m => m . ConfirmEmail )
23. @Html . TextBoxFor ( m => m . ConfirmEmail )
24. @Html . ValidationMessageFor ( m => m . ConfirmEmail )
25. </ li >
26. <li>
27. @Html . LabelFor ( m => m . Age )
28. @Html . TextBoxFor ( m => m . Age )
29. @Html . ValidationMessageFor ( m => m . Age )
30. </ li >
31. </ ol >
32. < input type = "submit" value = "Save Student Details" />
33. }
34.
35. < h3 style = "color: green" > Detalles del estudiante </ h3 >
36. < h4 style = "color: green" >
37. <b> Nombre : @ViewBag . Nombre < br />
38. Correo electrónico : @ViewBag . correo electrónico < br />
39. Edad : @ViewBag . edad </ b >
40. </ h4 >
1. [HttpPost]HttpPost ]
2. pública ActionResult StudentDetails ( StudentModel sm )
3. {
4. if ( ModelState . IsValid )
5. {
6. ViewBag . nombre = sm . Nombre ;
7. ViewBag . correo electrónico = sm . Correo electronico
8. ViewBag . edad = sm . edad ;
9. Vista de retorno ( "Índice" );
10. }
11. más
12. {
13. ViewBag . name = "No Data" ;
14. ViewBag . email = "Sin datos" ;
15. ViewBag . age = "No Data" ;
16. Vista de retorno ( "Índice" );
17. }
18. }
Entendamos este código:
Hasta ahora, aprendiste a usar el atributo de anotación de datos predefinido para validar el campo de
entrada. Pero, ¿cuál es la forma de agregar una regla personalizada en la anotación de datos? Aquí,
explicaré cómo puede agregar su propia regla de validación personalizada a la anotación de datos.
Por ejemplo, desea crear un atributo personalizado MinAgeAttribute() , en el cual el usuario se ve
obligado a ingresar su edad de 18 años o más de 18 años. Esto es solo un ejemplo y, después de
conocer el método de agregar un atributo personalizado en la anotación de datos, puede alimentar su
propio atributo. reglas.
Paso 1: Cree una carpeta separada CustomAttribute en su proyecto. Crea una clase
MinAgeAttribute.csen esta carpeta.
En este capítulo, expliqué cómo usar la anotación de datos para validar el campo de entrada en
ASP.NET MVC 5. También expliqué cómo agregar una regla de validación personalizada en
DataAnnotation. En el siguiente capítulo, aprenderá la validación remota en ASP.NET MVC. La
validación remota verifica el campo de entrada del usuario instantáneamente cuando el foco salta del
control de entrada.
La validación remota es una técnica para validar solo un campo de entrada particular sin publicar todo
el formulario en el servidor. Es muy útil para la verificación instantánea de un campo de entrada. Es
posible que note esta función al crear una cuenta en Gmail. A medida que salta del campo de entrada
de correo electrónico, comprueba instantáneamente la ID de correo electrónico de existencia y, si ya se
encuentra en la base de datos, sugiere que elija otra ID de correo electrónico.
Cuando aplique la validación remota en el campo de entrada MVC de asp.net, este campo podrá
actualizarse con el método de acción correspondiente. Aquí, estoy tomando un ejemplo de la misma
cuenta de Gmail, y verifico si la identificación de correo electrónico proporcionada ya existe o no.
1. utilizando System.Web.Mvc;
2. espacio de nombres RemoteValidation . Modelos
3. {
4. clase p ú blica StudentModel
5. {
6. cadena p ú blica Nombre { get ; conjunto; }
7. [ Remoto ( "IsEmailExist" , "Estudiante" , ErrorMessage = "El correo electrónico ya existe. Por favor,
elija otro correo electrónico." )]
8. Cadena p ú blica Correo electr ó nico { llegar ; conjunto; }
9. }
10. }
Puede ver que he usado el atributo Remoto justo antes de las propiedades del correo electrónico. He
usado 3 parámetros en esto.
1. IsEmailExist es un método de acción que comprueba instantáneamente si el correo electrónico ya
existe o no.
2. Estudiante es un nombre de controlador.
3. La cadena ErrorMessage devuelve el mensaje si el correo electrónico coincide.
Paso 3: CrearStudentController.cs
1. utilizando System.Web.Mvc;
2. Utilizando RemoteValidation . Modelos ;
3.
4. espacio de nombres RemoteValidation . Controladores
5. {
6. clase p ú blica StudentController : controlador
7. {
8. // OBTENER: Estudiante
9. Í ndice de ActionResult p ú blico ()
10. {
11. StudentModel sm = nuevo StudentModel ();
12. volver Ver ( sm );
13. }
14.
15. [ HttpGet ]
16. JsonResult IsEmailExist p ú blico ( Cadena de Correo electr ó nico )
17. {
18. bool isExist = false ;
19. si ( correo electrónico . Igual ( " abc@gmail.com "))
20. {
21. isExist = true ;
22. }
23. return Json (! isExist , JsonRequestBehavior . AllowGet );
24. }
25. }
26. }
1. @model RemoteValidation.Models.StudentModel
2.
3. @ {
4. ViewBag . Título = "Índice" ;
5. }
6.
7. <h2> Í ndice </ h2 >
8.
9.
10. @using ( Html . BeginForm ())
11. {
12. @Html . AntiForgeryToken ()
13.
14. < div class = "form-horizontal" >
15. <h4> StudentModel </ h4 >
16. < hr />
17. @Html . ValidationSummary ( true , "" , new { @class = "text-danger" })
18. < div class = "form-group" >
19. @Html . LabelFor ( modelo => modelo . Nombre , htmlAttributes : new { @class = "control-label col-md
-2" })
20. < div class = "col-md-10" >
21. @Html . EditorFor ( model => model . Name , new { htmlAttributes = new { @class = "form-control" }
})
22. @Html . ValidationMessageFor ( model => model . Name , "" , new { @class = "text-danger" })
23. </ div >
24. </ div >
25.
26. < div class = "form-group" >
27. @Html . LabelFor ( model => model . Correo electrónico , htmlAttributes : new { @class = "control-la
bel col-md-2" })
28. < div class = "col-md-10" >
29. @Html . EditorFor ( model => model . Email , new { htmlAttributes = new { @class = "form-control"
} })
30. @Html . ValidationMessageFor ( model => model . Email , "" , new { @class = "text-danger" })
31. </ div >
32. </ div >
33.
34. < div class = "form-group" >
35. < div class = "col-md-offset-2 col-md-10" >
36. < input type = "submit" value = "Create" class = "btn btn-default" />
37. </ div >
38. </ div >
39. </ div >
40. }
41.
42. <div>
43. @Html . ActionLink ( "Volver a la lista" , "Índice" )
44. </ div >
45.
46. @section Scripts {
47. @ Scripts . Render ( "~ / bundles / jqueryval" )
48. }
RESUMEN
En este capítulo, aprendió a usar la validación remota en ASP.NET MVC5 para la verificación
instantánea de un campo de entrada. En el siguiente capítulo, aprenderá el conjunto completo de HTML
Helper en ASP.NET MVC5.
HTML Helper Class tiene un conjunto de métodos que luego se convierten en controles HTML simples.
La ventaja de utilizar la clase HTML Helper es que los controles HTML se representan correctamente y
se verifican en el momento de la compilación. Por lo tanto, si hay algún problema con el control, se
puede corregir antes de ejecutar el proyecto final.
Esta es solo una demostración que muestra la estructura de la clase HTML Helper. En los siguientes
capítulos, estudiará todos los métodos de la clase HTML Helper con un ejemplo completo de
programación.
Html.Label
Html.LabelForModel
Html.TextBox
Html.TextArea
Html.Checkbox
Html.RadioButton
Html.DropDownList
Html.ListBox
Html.Hidden
Html.Password
Html.Display
Html.DisplayForModel
Html.DisplayName
Html.BeginForm
Html.BeginRouteForm
Html.EndForm
HTML. Id
Html.IdForModel
Html.Name
Html.NameForModel
Html.Value
Html.ValueForModel
Html.Editor
Html.EditorForModel
Html.Action
Html.ActionLink
Html.RouteLink
Html.Partial
Html.RenderPartial
Html.RenderAction
Html.Validate
Html.ValidationMessage
Html.ValidationSummary
Html.Encode
URL Helpers
RESUMEN:
Este es un capítulo muy básico, que solo te presenta a HTML Helper Class. En los siguientes capítulos,
aprenderá a usar diferentes tipos de métodos de ayuda HTML con ejemplos de programación.
MÁS ARTÍCULOS
3. Ejemplo de Html.Label
4. Ejemplo de Html.LabelFor
@ HTML.LABEL
La clase Html.Label Helper representa un control de etiqueta HTML que muestra texto de solo lectura.
Es un método de tipo simple que solo representa el control de etiquetas y puede estar o no limitado por
cualquier propiedad del modelo. No genera un error si ha pasado un nombre de propiedad incorrecto
en el parámetro.
1. utilizando System.ComponentModel;
2. espacio de nombres HtmlHelperDemo . Modelos
3. {
4. clase de usuario UserModel
5. {
6. [ DisplayName ( "Nombre de usuario" )]
7. cadena p ú blica Nombre { get ; conjunto; }
8. }
9. }
Ver: Index.cshtml
Html Output
<label for = "Name"> Nombre de usuario </label>
Nota: Si lo usa @Html.Label("User Name"), mostrará el Nombre de usuario como salida, pero no estará
limitado a las propiedades del modelo "Nombre". Debido a que nunca verifica errores en el momento
de la compilación, es probable que cometa errores y que también obtenga errores de salida o de tiempo
de ejecución incorrectos.
@ HTML.LABELFOR
Está fuertemente limitado por el modelo y muestra el texto de la etiqueta para las respectivas
propiedades del modelo. Debe vincular la vista con el modelo correspondiente para usar el método @
Html.LabelFor.
Vincular vista al modelo: agregue el nombre del modelo a la vista de la siguiente manera:
@model HtmlHelperDemo.Models.UserModel
Modelo de UserModel.csejemplo de Html.LabelFor :
Es el mismo que se mencionó en el párrafo anterior.
Ver:Index.cshtml
1. @model HtmlHelperDemo.Models.UserModel
2.
3. @using ( Html . BeginForm ( "Index" , "Home" , FormMethod . Post ))
4. {
5. @ Html . LabelFor ( m => m . Nombre )
6. }
Html Output
<label for = "Name"> Nombre de usuario </label>
1. <estilo>
2. .azul
3. {
4. color azul;
5. }
6. </style>
7.
8. @ Html.LabelFor (m => m.Name, nuevo {@ class = "blue"})
Html.Label () Html.LabelFo
Se escribe sin apretar Puede estar o no limitado a las propiedades del modelo. Está fuerteme
modelo de pr
Se produce un error de tiempo de ejecución. El error de tiempo de ejecución da una mala Lanza un erro
impresión al usuario y, si el proyecto vale la pena, puede perder a su cliente simplemente por de iniciar el p
un error.
RESUMEN
En este capítulo, traté de explicar Html.Labely el Html.LabelFormétodo de ayuda con un ejemplo
simple y fácil. Espero que lo hayas aprendido con claridad. En el siguiente capítulo, explicaré el método
de ayuda Html.TextBox.
3. Ejemplo de Html.TextBox
4. Ejemplo de Html.TextBoxFor
@ HTML.TEXTBOX ()
Html.TextBoxes el método de extensión de la clase HtmlHelper que dibuja HTML TextBox y acepta la
entrada del usuario. Html.TextBox es un método vagamente escrito que procesa la entrada del cuadro
de texto y no se limita con las propiedades del modelo. Debido a que es de tipo impreciso limitado,
tampoco comprueba el error en el momento de la compilación, por lo que si pasa una cadena incorrecta
como parámetro que no coincide con las propiedades del modelo, es probable que obtenga un error de
tiempo de ejecución.
Ver: Index.cshtml
Salida de HTML
<input id="Name" name="Name" style="color:red" type="text" value="Enter Name" />
@ HTML.TEXTBOXFOR ()
Html.TextBoxForTambién se utiliza para dibujar cuadros de texto en páginas web de asp.net pero está
fuertemente vinculado con las propiedades del modelo. La ventaja de usar Html.TextBoxFor es que
comprueba si hay errores en el momento de la compilación y lo salva de cualquier error de tiempo de
ejecución incierto. Debido a que está fuertemente delimitado con las propiedades del modelo, también
recibirá una sugerencia de Intellisense cuando la use.
@model HtmlHelperDemo.Models.UserModel
Ejemplo de programación del método Html.TextBoxFor () en ASP.NET MVC
Model:UserModel.cs
1. espacio de nombres HtmlHelperDemo.Models
2. {
3. clase de usuario UserModel
4. {
5. cadena p ú blica Nombre { get ; conjunto; }
6. }
7. }
Ver: Index.csthml
1. @model HtmlHelperDemo.Models.UserModel
2. @using ( Html . BeginForm ( "Index" , "Home" , FormMethod . Post ))
3. {
4. @ Html . TextBoxFor ( m => m . Name , new { @Value = "Enter Name" , @class = "red" })
5. }
6. <estilo>
7. . rojo { color : rojo ; }
8. </ estilo >
value="" />
1. [HttpPost]
2. Í ndice de ActionResult p ú blico ( UserModel u )
3. {
4. ViewBag . Nombre = u . Nombre ;
5. volver Ver ();
6. }
ATRIBUTOS HTML
Los atributos de Html establecen las propiedades de Html para el control de entrada como el ancho, el
color, el valor, la clase css, etc. Los atributos proporcionan información adicional sobre los elementos y
siempre vienen con el par nombre = "valor" .
Ejemplo:
Html.TextBox () Html.TextBox
Se escribe sin apretar Puede estar o no limitado a las propiedades del modelo. Está fuerteme
modelo de pro
Se produce un error de tiempo de ejecución. El error de tiempo de ejecución da una mala Lanza un erro
impresión al usuario y, si el proyecto vale la pena, puede perder a su cliente simplemente por de iniciar el pr
un error.
RESUMEN:
3. Ejemplo de Html.TextArea
4. Ejemplo de Html.TextAreaFor
TextArea es un control de entrada de texto multilínea que puede aceptar un gran número de líneas de
cadena. Por lo general, el tamaño de TextArea se divide en filas y columnas y puede configurarlo de
acuerdo con sus necesidades.
@ HTML.TEXTAREA ()
Html.TextAreaes un control de entrada de texto escrito de manera que toma la cadena como
parámetro. Esta cadena puede ser o no igual a la propiedad modelo. Porque no vincula el parámetro
de cadena con la propiedad del modelo y no comprueba si hay errores en el momento de la compilación,
por lo que puede haber una gran posibilidad de obtener un error en tiempo de ejecución.
Definir Html.TextArea ()
Hay varios métodos de sobrecarga en Html.TextArea()el control de entrada, pero comúnmente se
puede definir como:
Ver: Index.cshtml
Salida de HTML
<textarea cols = "20" id = "Name" name = "Name" rows = "2" style = "color: red">
@ HTML.TEXTAREAFOR ()
Html.TextAreaFor()fuertemente delimitado con las propiedades de los modelos. Comprueba el control
de entrada en el momento de la compilación y te salva de errores de tiempo de ejecución inciertos.
@Html.TextAreaFor()Ejemplo
Modelo: UserModel.cs
1. @model HtmlHelperDemo.Models.UserModel
2. @using ( Html . BeginForm ( "Index" , "Home" , FormMethod . Post ))
3. {
4. <b> Nombre : </ b > @ Html . TextAreaFor ( m => m . Nombre , nuevo { @style = "color: rojo" })
5. }
Salida de HTML
<textarea cols = "20" id = "Name" name = "Name" rows = "2" style = "color: red">
ATRIBUTOS DE HTML
Los atributos de HTML establecen las propiedades de HTML para el control de entrada como el ancho,
el color, el valor, la clase de CSS, etc. Los atributos proporcionan información adicional sobre los
elementos y siempre vienen con el par nombre = "valor".
Ejemplo:
1. @ Html.TextAreaFor (m => m.Name,
2. nuevo {
3. @value = "Ingresar Nombre" ,
4. @class = "rojo" ,
5. // @ deshabilitado = "verdadero",
6. cols = "50" ,
7. filas = "10" ,
8. @ title = "Por favor ingrese su nombre" ,
9. @ tabindex = "0" ,
10. // @ accesskey = "z",
11. @ align = "left" ,
12. @ autofocus = "true" ,
13. @ style = "background-color: yellow; font-weight: bold" ,
14. @ draggable = "true" ,
15. // @ hidden = "true",
16. // @ maxlength = "12",
17. @ minlength = "5" ,
18. @ required = "true"
19. })
Salida de HTML
<textarea align = "left" autofocus = "true" class = "red" cols = "50" draggable = "true" id = "Name" minlength = "5" name = "Name"
required = "true" rows = " 10 "style =" background-color: amarillo; font-weight: bold "tabindex =" 0 "title =" Ingrese su nombre "valor
=" Ingrese el nombre ">
Html.TextArea () Html.TextAre
Se escribe sin apretar Puede estar o no limitado a las propiedades del modelo. Está fuerteme
modelo de pro
RESUMEN:
En este capítulo, aprendió Html.TextArea()y el Html.TextAreaFormétodo de extensión de ayuda en
ASP.NET MVC 5 con un ejemplo completo de programación. Mantuve este capítulo simple, breve y
fácil, así que espero que no tenga ningún problema para entender este capítulo. En el siguiente capítulo,
aprenderá sobre el método de extensión Html.TextArea ().
3. Ejemplo de Html.CheckBox
4. Ejemplo de Html.CheckBoxFor
Una casilla de verificación es una pequeña casilla que le permite elegir múltiples opciones. Solo lleva el
valor verdadero y falso para el elemento marcado y sin marcar. En la clase de ASP.NET MVC ayudante,
que han dado Html.CheckBox()y Html.CheckBoxFor()método de extensión para trabajar. Aquí, en este
artículo, aprenderemos ambos métodos con un ejemplo completo de programación.
Ver: Index.cshtml
Salida de HTML
<input checked = "checked" data-val = "true" data-val-required = "El campo Tea es obligatorio". id = "Tea"
name = "Tea" type = "checkbox" value = "true" />
<input data-val = "true" data-val-required = "El campo Loundry es obligatorio". id = "Loundry" name = "Lou
ndry" type = "checkbox" value = "true" />
<input data-val = "true" data-val-required = "El campo Desayuno es obligatorio". id = "Breakfast" name = "
Breakfast" type = "checkbox" value = "true" />
Salida de imagen El método de extensión Html.CheckBox genera una casilla de verificación de HTML
puro con los siguientes valores: a. La identificación y el nombreindican el nombre de la Propiedad
del Modelo. segundo. Tipo denota que es casilla de verificación c. Marcado indica si una casilla de
verificación está seleccionada o no d.Data-val = "true" y data-val-required = "El campo Tea es
obligatorio". están llegando porque, de forma predeterminada, MVC agrega el atributo [Requerido] a
los tipos de valores no anulables. Para solucionarlo, agregue la siguiente línea en el método en el
Application_Start
DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes =
false;
<input name="Tea" type="hidden" value="false" />
Te has dado cuenta de que @Html.CheckBoxestá generando un campo oculto adicional con un valor
falso. Esto se debe a que, cuando no selecciona una casilla de verificación, el formulario aún envía un
valor falso al servidor. Es la forma de gestionar el estado de la casilla de verificación en MVC.
@model HtmlHelperDemo.Models.UserModel
Definir: es el modelo de conexión de esta casilla de verificación. se refiere al valor verdadero / falso
establece propiedades adicionales a la casilla de verificación. Ejemplo
CheckBoxFor(model > Property, bool isChecked, object htmlAttributes)
Model > Property
isChecked
HtmlAttributes
Modelo: UserModel.cs
1. @model HtmlHelperDemo.Models.UserModel
2. @using ( Html . BeginForm ( "Index" , "Home" , FormMethod . Post ))
3. {
4. <b> Quiere ADICIONALES Beneficios : < / b> <br />
5. <span> T é: </ span > @ Html . CheckBoxFor ( m => m . Tea , verdadero )
6. <span> | Loundry: </span> @ Html.CheckBoxFor (m => m.Loundry, false)
7. <span> | Desayuno: </span> @ Html.CheckBoxFor (m => m.Breakfast, false)
8. }
Salida de HTML:
<input checked = "checked" id = "Tea" name = "Tea" type = "checkbox" value = "true" />
<input checked = "checked" id = "Loundry" name = "Loundry" type = "checkbox" value = "true" />
<input data-val = "true" data-val-required = "El campo Desayuno es obligatorio". id = "Breakfast" name = "
Breakfast" type = "checkbox" value = "true" />
Salida de imagen
1. [HttpPost]
2. Í ndice de ActionResult p ú blico ( UserModel u )
3. {
4. ViewBag . Té = u . té ;
5. ViewBag . Loundry = u . Loundry ;
6. ViewBag . Desayuno = u . el desayuno ;
7. volver Ver ();
8. }
ATRIBUTOS DE HTML
Los atributos de HTML establecen las propiedades de HTML para el control de entrada como el ancho,
el color, el valor, la clase CSS, etc. Los atributos proporcionan información adicional sobre los elementos
y siempre vienen con el par nombre = "valor".
Ejemplo:
Salida de HTML:
<input align = "left" autofocus = "true" checked = "true" class = "red" draggable = "true" id = "Tea" name
= "Tea" style = "background-color: yellow; font-weight: negrita "tabindex =" 0 "title =" Seleccionar, si q
uieres té. " type = "checkbox" value = "Tea" /> <input name = "Tea" type = "hidden" value = "false" />
Html.CheckBox () Html.CheckB
Se escribe sin apretar Puede estar o no limitado a las propiedades del modelo. Está fuerteme
modelo de pro
Se produce un error de tiempo de ejecución. El error de tiempo de ejecución da una mala Lanza un erro
impresión al usuario y, si el proyecto vale la pena, puede perder a su cliente simplemente de iniciar el pr
por un error.
RESUMEN
En este capítulo, aprendió Html.CheckBox()y el Html.CheckBoxFor()método de extensión de ayuda
en ASP.NET MVC 5 con un ejemplo completo de programación. Mantuve este capítulo simple, breve y
fácil, así que espero que no tenga ningún problema para entender este capítulo. En el siguiente capítulo,
aprenderá sobre el método de extensión Html.RadioButton ().
4. Ejemplo de Html.RadioButton
5. Ejemplo de Html.RadioButtonFor
El botón de opción proporciona una lista de opciones y le permite elegir solo una opción en un panel.
El botón de opción se usa ampliamente en un formulario y es válido para elementos seleccionados y
falso para elementos no seleccionados. La clase Html.Helper proporciona 2 métodos de extensión para
trabajar con Radio Button; Html.RadioButtony Html.RadioButtonFormétodo.
@ HTML.RADIOBUTTON
Html.RadioButtones un método que no está restringido a una propiedad del modelo. Debe pasar una
cadena con el mismo nombre que una propiedad modelo para evitar el error de tiempo de ejecución.
Definir:
RadioButton(string name, object value, bool isChecked, object htmlAttributes)
Ejemplo:
Modelo: UserModel.cs
Ver: Index.cshtml
1. @model HtmlHelperDemo.Models.UserModel
2. @using ( Html . BeginForm ( "Index" , "Home" , FormMethod . Post ))
3. {
4. <b> Seleccionar tipo de t é: < / b> <br />
5. <span> T é: </ span > @ Html . RadioButton ( "TeaType" , "Tea" , falso )
6. <span> | Café: </span> @ Html.RadioButton ("TeaType", "Coffee", verdadero)
7. <span> | BlackTea: </span> @ Html.RadioButton ("TeaType", "BlackTea", falso)
8. <span> | GreenTea: </span> @ Html.RadioButton ("TeaType", "GreenTea", falso)
9. < Br />
10. < hr />
11.
12. <b> Seleccionar hotel de : < / b> <br />
13. <span> Hotel Grand Plaza : </ span > @ Html . RadioButton ( "HotelType" , "HotelGrandPlaza" , falso )
14. <span> | Hotel Lake View: </span> @ Html.RadioButton ("Tipo de Hotel", "HotelLakeView", falso)
15. <span> | Hotel River Side: </span> @ Html.RadioButton ("HotelType", "HotelRiverSide", verdadero)
16. <span> | Hotel Mountain View: </span> @ Html.RadioButton ("HotelType", "MountainView", falso)
17. < Br />
18. < input type = "submit" value = "submit" />
19. }
20.
21. <h4> Ha seleccionado </ h4 >
22. <b> Tipo de t é: < / b> @ ViewBag.TeaType <br />
23. <b> Tipo de hotel : </ b > @ ViewBag . Tipo de Hotel
Controlador: HomeController.cs
1. [HttpPost]
2. Í ndice de ActionResult p ú blico ( UserModel u )
3. {
4. ViewBag . TeaType = u . TeaType . ToString ();
5. ViewBag . Tipo de Hotel = u . HotelType . ToString ();
6. volver Ver ();
7. }
Salida de HTML:
@ HTML.RADIOBUTTONFOR
Html.RadioButtonForel método es un método fuertemente tipado que está restringido a una propiedad
modelo. Comprueba todos los errores en el momento de la compilación y guarda su aplicación para que
no obtenga ningún error de tiempo de ejecución.
Definir:
Ver: Index.cshtml
1. @model HtmlHelperDemo.Models.UserModel
2. @using ( Html . BeginForm ( "Index" , "Home" , FormMethod . Post ))
3. {
4.
5. <b> Seleccionar té Tipo : < / b> <br />
6. <span> Té : </ span > @Html . RadioButtonFor ( m => m . TeaType , "Tea" )
7. <span> | Café : </ span > @Html . RadioButtonFor ( m => m . TeaType , "Coffee" )
8. <span> | BlackTea : </ span > @Html . RadioButtonFor ( m => m . TeaType , "BlackTea" )
9. <span> | GreenTea : </ span > @Html . RadioButtonFor ( m => m . TeaType , "GreenTea" )
10. < Br />
11. < hr />
12. <b> Seleccionar hotel : < / b> <br />
13. <span> Hotel Grand Plaza : </ span > @Html . RadioButtonFor ( m => m . Tipo de Hotel , "HotelGrandPlaza"
)
14. <span> | Hotel Lake View : </ span > @Html . RadioButtonFor ( m => m . Tipo de Hotel , "HotelLakeView" )
15. <span> | Hotel River Side : </ span > @Html . RadioButtonFor ( m => m . Tipo de Hotel , "HotelRiverSide"
)
16. <span> | Hotel Mountain View : </ span > @Html . RadioButtonFor ( m => m . Tipo de Hotel , "MountainView
" )
17. < Br />
18. < input type = "submit" value = "submit" />
19.
20. }
21.
22. <h4> Has seleccionado </ h4 >
23. <b> Té Tipo : < /b>@ViewBag.TeaType <br />
24. <b> Tipo de hotel : </ b > @ViewBag . Tipo de Hotel
Controlador: HomeController.cs
1. [HttpPost]HttpPost ]
2. Índice de ActionResult público ( UserModel u )
3. {
4. ViewBag . TeaType = u . TeaType . ToString ();
5. ViewBag . Tipo de Hotel = u . HotelType . ToString ();
6. volver View ();
7. }
Salida de HTML
<input id = "TeaType" name = "TeaType" type = "radio" value = "Tea" /> id = "TeaType" name = "TeaType" typ
e = "radio" value = "Tea" />
ATRIBUTOS DE HTML
Los atributos de Html establecen las propiedades de Html para el control de entrada como el ancho, el
color, el valor, la clase css, etc. Los atributos proporcionan información adicional sobre los elementos y
siempre vienen con el par nombre = "valor" .
Salida de HTML
<b> Té: </b> <input align = "left" autofocus = "true" checked = "true" class = "red" draggable = "true" id
= "TeaType" name = "TeaType" style = "background -color: amarillo; font-weight: negrita "tabindex =" 0 "ti
tle =" Seleccionar, si quieres té ". type = "radio" value = "Tea" />
Té: </b> <input align = "left" autofocus = "true" checked = "true" class = "red" draggable = "true" id = "
TeaType" name = "TeaType" style = " background - color : amarillo ; fuente - peso : negrita " tabindex = "
0 " title = " Seleccionar, si quieres té. "tipo = valor "radio" = "Tea" />
DIFERENCIA ENTRE HTML.RADIOBUTTONY HTML.RADIOBUTTONFORMÉTODO.
Html.RadioButton () Html.RadioBu
Se escribe sin apretar Puede estar o no limitado a las propiedades del modelo. Está fuertemen
modelo de pro
Se produce un error de tiempo de ejecución. El error de tiempo de ejecución da una mala Lanza un error
impresión al usuario y, si el proyecto vale la pena, puede perder a su cliente simplemente de iniciar el pro
por un error.
RESUMEN
En este capítulo, aprendió Html.RadioButton()y el Html.RadioButtonFormétodo de extensión de
ayuda en ASP.NET MVC 5 con un ejemplo completo de programación. Mantuve este capítulo simple,
corto y fácil; así que espero que no tengas ningún problema en entender este capítulo. En el siguiente
capítulo, aprenderá sobre el método de extensión Html.DropDownList ().
3. Html.DropDownList Ejemplo
4. Html.DropDownListFor Ejemplo
Html.HelperLa clase proporciona dos métodos de extensión para trabajar con DropDownList.
a. Html.DropDownList
b. Html.DropDownListFor
Modelo: UserModel.cs
Ver: Index.cshtml
1. @utilizando HtmlHelperDemo.Models
2. @model UserModel
3. < Br /> < br />
4. @using ( Html . BeginForm ( "Index" , "Home" , FormMethod . Post ))
5. {
6. <b> Seleccionar tipo de t é: </ b >
7.
8. @ Html . DropDownList ( "SelectTeaType" , nueva SelectList ( Enum . GetValues ( typeof ( TeaType ))), "-
Select TeaType--" )
9. < input type = "submit" value = "submit" />
10. }
11.
12. <h4> Ha seleccionado </ h4 >
13. <b> Tipo de t é: </ b > @ ViewBag . TeaType
Controlador: HomeController.cs
1. utilizando System.Web.Mvc;
2. Utilizando HtmlHelperDemo . Modelos ;
3.
4. espacio de nombres HtmlHelperDemo . Controladores
5. {
6. Clase p ú blica HomeController : Controlador
7. {
8. Í ndice de ActionResult p ú blico ()
9. {
10. volver Ver ();
11. }
12.
13. [ HttpPost ]
14. Í ndice de ActionResult p ú blico ( modelo UserModel )
15. {
16. var selectedValue = model . SelectTeaType ;
17. ViewBag . TeaType = selectedValue . ToString ();
18. volver Ver ();
19. }
20. }
21. }
Salida de HTML:
<option value = ""> Select TeaType </option><option value = "" > Select TeaType </option>
<opción seleccionada = "seleccionado"> Café </option><opción seleccionada = "seleccionado" > Café </opti
on>
DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes =
false;
Html.DropDownListFor está fuertemente delimitado con las propiedades del modelo y comprueba
todos los errores en el momento de la compilación. Antes de utilizar este método, debe enlazar vistas
con un modelo. Agregue el nombre del modelo en la parte superior de la vista de la siguiente manera:
@utilizando HtmlHelperDemo.Models
@model UserModel
Definir:
Se puede definir de la Html.DropDownListForsiguiente manera:
a. model => model.property: enlaza DropDownListFor con una propiedad de modelo específica.
segundo. IEnumerable <SelectLestItem> selectList: Es la lista de elementos.
do. string optionLabel es la cadena informativa opcional, por favor elija un elemento, seleccione un
elemento, seleccione un valor, etc.
d. el objeto HtmlAttributes agrega características adicionales a la lista desplegable.
Ejemplo:
Modelo: UserModel.cs
1. espacio de nombres HtmlHelperDemo.Models
2. {
3. clase de usuario UserModel
4. {
5. public TeaType SelectTeaType { get ; conjunto; }
6. }
7.
8. enumeraci ó n p ú blica TeaType
9. {
10. T é, Café é, GreenTea , BlackTea
11. }
12. }
1. @utilizando HtmlHelperDemo.Models
2. @model UserModel
3. < Br /> < br />
4. @using ( Html . BeginForm ( "Index" , "Home" , FormMethod . Post ))
5. {
6. <b> Seleccione el tipo de té : </ b >
7. @Html . DropDownListFor ( m => m . SelectTeaType , nueva SelectList ( Enum . GetValues ( typeof ( TeaTyp
e ))), "--Seleccione TeaType--" )
8. < input type = "submit" value = "submit" />
9. }
10.
11. <h4> Has seleccionado </ h4 >
12. <b> Tipo de té : </ b > @ViewBag . TeaType
Controlador: HomeController.cs
RESUMEN
En este capítulo, aprendió el Html.DropDownListfuncionamiento básico con un ejemplo completo de
programación. Aquí estoy agregando algunos ejemplos de programación más en DropDownList, debe
verificarlos y aprenderlos para una mejor comprensión. En el siguiente capítulo, aprenderá Html.ListBox.
EJEMPLO DE PROGRAMACIÓN
Aquí, voy a crear una lista de té y luego usaré esta lista de té para mostrarla en ListBox y pedirle al
usuario que seleccione su opción.
Modelo: UserModel.cs
1. utilizando System.Collections.Generic;
2. Utilizando el sistema . Web . Mvc ;
3.
4. espacio de nombres HtmlHelperDemo . Modelos
5. {
6. clase de usuario UserModel
7. {
8. public int [] SelectedTeaIds { get ; conjunto; }
9. public IEnumerable < SelectListItem > TeaList { get ; conjunto; }
10. }
11. }
Controlador: HomeController.cs
1. utilizando System.Web.Mvc;
2. Utilizando HtmlHelperDemo . Modelos ;
3. Utilizando el sistema . Colecciones . genérica ;
4. Utilizando el sistema . Linq ;
5.
6. espacio de nombres HtmlHelperDemo . Controladores
7. {
8. Clase p ú blica HomeController : Controlador
9. {
10. Í ndice de ActionResult p ú blico ()
11. {
12. modelo var = nuevo UserModel
13. {
14. SelectedTeaIds = new [] { 2 },
15. TeaList = GetAllTeaTypes ()
16. };
17. volver vista ( modelo );
18. }
19.
20. [ HttpPost ]
21. Í ndice de ActionResult p ú blico ( modelo UserModel )
22. {
23. modelo . TeaList = GetAllTeaTypes ();
24. if ( modelo . SelectedTeaIds ! = null )
25. {
26. Lista < SelectListItem > selectedItems = model . TeaList . Donde ( p => modelo . SelectedTeaIds .
Contiene ( int . Parse ( p . Valor ))). ToList ();
27. foreach ( var t é en elementos seleccionados )
28. {
29. Té . Seleccionado = verdadero ;
30. ViewBag . Mensaje + = Té . Texto + "|" ;
31. }
32. }
33. volver vista ( modelo );
34. }
35.
36. Lista p ú blica < SelectListItem > GetAllTeaTypes ()
37. {
38. Listar < SelectListItem > items = new List < SelectListItem > ();
39. artículos . Add ( nuevo SelectListItem { Text = "General Tea" , Value = "1" });
40. artículos . Add ( nuevo SelectListItem { Text = "Coffee" , Value = "2" });
41. artículos . Add ( nuevo SelectListItem { Text = "Green Tea" , Value = "3" });
42. artículos . Add ( nuevo SelectListItem { Text = "Black Tea" , Value = "4" });
43. Devolver los art í culos ;
44. }
45. }
46. }
Ver: Index.cshtml
1. @utilizando HtmlHelperDemo.Models
2. @model UserModel
3. < Br /> < br />
4. @using ( Html . BeginForm ( "Index" , "Home" , FormMethod . Post ))
5. {
6. <b> Seleccionar tipo de t é: < / b> <br />
7. @ Html . ListBoxFor ( x => x . SelectedTeaIds , Model . TeaList , nuevo { style = "width: 200px" })
8. < Br />
9. < input type = "submit" value = "submit" />
10. }
11.
12. <h4> Ha seleccionado </ h4 >
13. < b style = "color: red" > Tipo de t é: @ ViewBag . Mensaje </ b >
Salida:
Los atributos de HTML establecen las propiedades de HTML para el control de entrada como el ancho,
el color, el valor, la clase de CSS, etc. Los atributos proporcionan información adicional sobre los
elementos y siempre vienen con el par nombre = "valor".
RESUMEN
En este capítulo, aprendió el método de extensión de ayuda Html.ListBoxFor () en ASP.NET MVC 5 con
un completo ejemplo de programación. Mantuve este capítulo simple, breve y fácil, así que espero que
no tenga ningún problema para entender este capítulo. En el siguiente capítulo, aprenderá el método
de extensión Html.Hidden ().
Html.HiddenFor Ejemplo En ASP.NET MVC
En este capítulo, aprenderás:
Usted creó un formulario y pidió a los usuarios que rellenaran alguna información. En la parte posterior,
también desea recopilar cierta información del usuario y enviar esa información al servidor cuando el
usuario haga clic en el botón enviar. Esta información puede ser:
3. Qué usuario del sistema operativo está usando; Android, iOS, Linux o Windows 7, etc.
4. Ficha de seguridad
5. Fecha de envío
6. Etc.
Entonces, cuando el usuario complete el formulario, mientras tanto, puede recopilar toda la información
anterior y mantenerla en un campo oculto.
Html.Hidden () es un método de ayuda de tipo básico o un método de ayuda de tipo holgado, que no
está limitado a ningún modelo. Contiene 2 parámetros; Nombre de campo oculto y valor de campo
oculto.
Definir:
Html.HiddenFor () es un método fuertemente tipado que está delimitado con la clase modelo. Se
comunica y envía / recibe valor para modelar propiedades de clase. Generalmente contiene 2
parámetros; Nombre de campo oculto que es una propiedad modelo y un valor para el campo oculto.
Definir:
EJEMPLO DE PROGRAMACIÓN
Aquí, estoy dando un ejemplo básico de Html.Hidden y Html.HiddenFor. En este siguiente ejemplo, he
tratado de explicar lo siguiente:
Ver: Index.cshtml
1. @utilizando HtmlHelperDemo.Models
2. @model UserModel
3.
4. <h1> Ejemplo de HTML . Oculto </ h1 >
5.
6. @using ( Html . BeginForm ())
7. {
8. // Campo oculto básico
9. @ Html . Oculto ( "BasicHiddenName" , "Steven Clark" )
10.
11. // Campo oculto fuertemente tipado
12. @ Html.HiddenFor (m => m.UserId, nuevo {Valor = "1"}) <br />
13. @ Html.HiddenFor (m => m.UserName, nuevo {Valor = "Steven Clark"})
14.
15. <input id = "Enviar" tipo = "enviar" valor = "enviar" />
16. }
17.
18. <hr />
19. <h4> Html.Hidden - Basic Type </h4>
20. <p> <strong> Valor: </strong> @ ViewBag.basicname </p> <br />
21.
22. <h4> Html.HiddenFor - Escriba fuertemente </h4>
23.
24. <p> <strong> ID: </strong> @ ViewBag.id </p>
25. <p> <strong> Nombre: </strong> @ ViewBag.name </p>
Controlador: HomeController.cs
1. utilizando System.Web.Mvc;
2. utilizando HtmlHelperDemo.Models;
3.
4. espacio de nombres HtmlHelperDemo.Controllers
5. {
6. Clase pública HomeController: Controlador
7. {
8. Índice de ActionResult público ()
9. {
10. volver View ();
11. }
12.
13. [HttpPost]
14. Índice de ActionResult público (FormCollection fc, UserModel um)
15. {
16. ViewBag.basicname = fc ["BasicHiddenName"];
17.
18. ViewBag.id = um.UserId;
19. ViewBag.name = um.UserName;
20. volver View (um);
21. }
22. }
23. }
Salida de HTML:
para ver la salida, haga clic en el botón enviar y luego vaya a la página de origen presionando Ctrl + U
en su navegador.
Ver: Index.cshtml
1. @utilizando HtmlHelperDemo.Models
2. @model UserModel
3.
4. <h1> Ejemplo de HTML.Hidden </h1>
5.
6. @using (Html.BeginForm ())
7. {
8. // Campo oculto básico
9. @ Html.Hidden ("BasicHiddenName", nulo, nuevo {@id = "BasicHiddenName"})
10.
11. // Campo oculto fuertemente tipado
12. @ Html.HiddenFor (m => m.UserId, nuevo {id = "UserId"}) <br />
13. @ Html.HiddenFor (m => m.UserName, nuevo {id = "UserName"})
14.
15. <input id = "Enviar" tipo = "enviar" valor = "enviar" />
16. }
17.
18. <hr />
19. <h4> Html.Hidden - Basic Type </h4>
20. <p> <strong> Valor: </strong> @ ViewBag.basicname </p> <br />
21.
22. <h4> Html.HiddenFor - Escriba fuertemente </h4>
23.
24. <p> <strong> ID: </strong> @ ViewBag.id </p>
25. <p> <strong> Nombre: </strong> @ ViewBag.name </p>
Controlador: HomeController.cs
1. utilizando System.Web.Mvc;
2. Utilizando HtmlHelperDemo . Modelos ;
3.
4. espacio de nombres HtmlHelperDemo . Controladores
5. {
6. Clase p ú blica HomeController : Controlador
7. {
8. Índice de ActionResult público ()
9. {
10. UserModel um = new UserModel ();
11. um . ID de usuario = 2 ;
12. um . Nombre de usuario = "Jack Martin" ;
13. ViewBag . BasicHiddenName = "Jack Martin" ;
14. volver Ver ( um );
15. }
16.
17. [ HttpPost ]
18. Í ndice de ActionResult p ú blico ( FormCollection fc , UserModel um )
19. {
20. ViewBag . basicname = fc [ "BasicHiddenName" ];
21.
22. ViewBag . id = um . ID de usuario ;
23. ViewBag . nombre = um . Nombre de usuario ;
24. volver Ver ( um );
25. }
26. }
27. }
Salida de HTML
RESUMEN
En este capítulo, he tratado de enseñarle cómo usar Html.Hidden Field en ASP.Net MVC 5 . Es
bastante fácil aprender este control con la ayuda del ejemplo de programación mencionado en este
artículo.
La clase Html.Password Helper genera campos de entrada de contraseña en un formulario web que
se utiliza para solicitar y validar la contraseña del usuario. Los caracteres ingresados en el campo de
contraseña están enmascarados con un carácter especial * (asterisco) o lo que sea que establezca en
él.
Html.Password y Html.PasswordFor ambos generan el campo de entrada de contraseña, pero aún así,
son de naturaleza diferente. Html.Password es un tipo básico, clase de ayudante de tipo que no está
delimitado con la propiedad del modelo. Html.PasswordFor es una clase fuertemente tipada que está
limitada por la propiedad del modelo. Siempre es recomendable utilizar la clase Html.PasswordFor
porque es segura, está libre de errores, comprueba los errores en el tiempo de compilación y es fácil
de usar.
DEFINIR
Html.Password
Ejemplo fácil
@ Html.Password ("BasicPassword")
Html.PasswordFor
Ejemplo fácil
@ Html.PasswordFor (m => m.ConfirmPassword)
1. utilizando System.ComponentModel.DataAnnotations;
2.
3. espacio de nombres HtmlHelperDemo . Modelos
4. {
5. clase de usuario UserModel
6. {
7. public int UserId { get ; conjunto; }
8. Cadena p ú blica Nombre de Usuario { Obtener ; conjunto; }
9.
10. [ Requerido ( ErrorMessage = "Se requiere contraseña." )]
11. Cadena p ú blica CONTRASE ñ un { Obtener ; conjunto; }
12.
13. [Requerido (ErrorMessage = "Se requiere contraseña de confirmación")]
14. [Comparar ("Contraseña", ErrorMessage = "La contraseña debe coincidir")]
15. cadena pública ConfirmPassword {get; conjunto; }
16. }
17. }
Ver: Index.cshtml
1. @utilizando HtmlHelperDemo.Models
2. @model UserModel
3.
4. <h1> Html.PasswordFor Ejemplo </h1>
5.
6. @using (Html.BeginForm ("Index", "Home", FormMethod.Post))
7. {
8. // Contraseña básica Campo Ejemplo
9. @ Html.Password ("BasicPassword")
10. <br />
11. // Campo oculto fuertemente tipado
12. @ Html.PasswordFor (m => m.Password)
13. @ Html.ValidationMessageFor (m => m.Password, "", new {@class = "error"})
14. <br />
15. @ Html.PasswordFor (m => m.ConfirmPassword)
16. @ Html.ValidationMessageFor (m => m.ConfirmPassword, "", new {@class = "error"})
17. <br /> <br />
18. <input id = "Enviar" tipo = "enviar" valor = "enviar" />
19. }
20.
21. <hr />
22.
23. <p> <strong> Valor: </strong> @ ViewBag.BasicPassword </p> <br />
24. <p> <strong> Valor: </strong> @ ViewBag.StrongPassword </p> <br />
Controlador: HomeController.cs
1. utilizando System.Web.Mvc;
2. Utilizando HtmlHelperDemo . Modelos ;
3.
4. espacio de nombres HtmlHelperDemo . Controladores
5. {
6. Clase p ú blica HomeController : Controlador
7. {
8. Í ndice de ActionResult p ú blico ()
9. {
10. volver Ver ();
11. }
12.
13. [ HttpPost ]
14. Í ndice de ActionResult p ú blico ( FormCollection fc , UserModel um )
15. {
16. if ( ModelState . IsValid )
17. {
18. ViewBag . BasicPassword = fc [ "BasicPassword" ];
19.
20. ViewBag . StrongPassword = um . Confirmar contraseña ;
21. volver Ver ( um );
22. }
23. m á s
24. {
25. volver Ver ();
26. }
27. }
28. }
29. }
Salida de HTML
<form action = "/" method = "post"> <input id = "BasicPassword" name = "BasicPassword" type = "password" /
> <br />
<input data-val = "true" data-val-required = "Se requiere contraseña." id = "Contraseña" name = "Password"
type = "password" /> <span class = "error de validación de campo válido" data-valmsg-for = "Password" data
-valmsg-replace = "true"> </ span> <br />
<input class = "error-validación-entrada" data-val = "true" data-val-equalto = "La contraseña debe coincid
ir" data-val-equalto-other = "*. Password" data-val-required = "Confirmation La contraseña es obligatoria
"id =" ConfirmPassword "nombre =" ConfirmPassword "type =" password "/> <span class =" error de validación
de campo "data-valmsg-for =" ConfirmPassword "data-valmsg-replace =" true "> La contraseña debe coincidir
</span> <br /> <br /><input class = "error-validación-entrada" data-val = "true" data-val-equalto = "La co
ntraseña debe coincidir" data-val-equalto-other = "* .Password" data-val-required = "Confirmación Se requi
ere contraseña " id = " ConfirmPassword " name = " ConfirmPassword " type = " password " /> <span class =
" error de validación de campo " data-valmsg-for = " ConfirmPassword " data-valmsg-replace = "true " > La
contraseña debe coincidir </span> <br /> <br />
<input id = "Enviar" tipo = "enviar" valor = "enviar" /><input id = "Enviar" tipo = "enviar" valor = "en
viar" />
</form> </form>
RESUMEN
En este tutorial, aprendió a usar la clase Html.Password Helper para generar un cuadro de entrada de
contraseña en un formulario web. También aprendió cómo validar el campo de contraseña y enviar
datos al controlador. En el siguiente capítulo, aprenderá Html.Display Helper Class.
1. Lo que es Html.DisplayyHtml.DisplayFor
2. Cómo definir el Html.Displaymétodo de ayuda
3. Cómo enlazar Html.DisplayFora un modelo
4. Cómo mostrar la cadena de Textbox en el método Html.Display
5. Ejemplo de programación de Html.DisplayFor
EJEMPLO DE PROGRAMACIÓN
Modelo: UserModel.cs
1. espacio de nombres HtmlHelperDemo.Models
2. {
3. clase de usuario UserModel
4. {
5. Cadena p ú blica Nombre de Usuario { Obtener ; conjunto; }
6. }
7. }
Ver: Index.cshtml
1. @utilizando HtmlHelperDemo.Models
2. @model UserModel
3.
4. <h1> Html . DisplayFor Ejemplo </ h1 >
5.
6. @using ( Html . BeginForm ( "Index" , "Home" , FormMethod . Post ))
7. {
8. <span> Ingrese su nombre : </ span >
9. @ Html . TextBoxFor ( m => m . UserName )
10. < input id = "Enviar" tipo = "enviar" valor = "enviar" />
11.
12. }
13.
14. < hr />
15.
16. <strong> Valor fuertemente tipado : < / strong> @ Html.DisplayFor (m => m.UserName) <br />
17.
18. <strong> A la vista & nbsp ; valor escrito : </ strong > @ Html . Mostrar ( "Nombre de usuario" )
Controlador: HomeController.cs
1. utilizando System.Web.Mvc;
2. Utilizando HtmlHelperDemo . Modelos ;
3.
4. espacio de nombres HtmlHelperDemo . Controladores
5. {
6. Clase p ú blica HomeController : Controlador
7. {
8. Í ndice de ActionResult p ú blico ()
9. {
10. volver Ver ();
11. }
12.
13. [ HttpPost ]
14. Í ndice de ActionResult p ú blico ( FormCollection fc , UserModel um )
15. {
16. if ( ModelState . IsValid )
17. {
18. um . Nombre de usuario = fc [ "Nombre de usuario" ];
19. volver Ver ( um );
20. }
21. m á s
22. {
23. volver Ver ();
24. }
25. }
26. }
27. }
Salida
MÁS ARTÍCULOS
1. ¿Qué es Html.BeginForm?
2. Cómo crear Html.BeginForm
3. Cómo pasar los datos del formulario al controlador
4. Ejemplo completo de programación
¿QUÉ ES HTML.BEGINFORM?
Html.BeginForm es el método de extensión Html Helper que se utiliza para crear y representar el
formulario en HTML. Este método hace su trabajo más fácil en la creación de la forma. Aquí está el
método para crear un formulario utilizando el método de extensión Html.BeginForm en ASP.NET MVC5.
Get / Post Method : define el método que desea utilizar para enviar datos desde el formulario al
controlador.
EJEMPLO DE PROGRAMACIÓN:
Modelo: UserModel.cs
Ver: Index.cshtml
1. @utilizando HtmlHelperDemo.Models
2. @model UserModel
3.
4. <h1> Html . DisplayFor Ejemplo </ h1 >
5.
6. @using (Html.BeginForm ("Index", "Home", FormMethod.Post))
7. {
8. <span> Ingrese su nombre: </span> @ Html.TextBoxFor (m => m.UserName) <br />
9. <span> Ingrese su edad: </span> @ Html.TextBoxFor (m => m.Age) <br />
10. <span> Ingrese su ciudad: </span> @ Html.TextBoxFor (m => m.City) <br />
11.
12. <input id = "Enviar" tipo = "enviar" valor = "enviar" />
13. }
14.
15. <hr />
16.
17. <strong> Nombre de usuario: </strong> @ Html.DisplayFor (m => m.UserName) <br />
18. <strong> User Age: </strong> @ Html.DisplayFor (m => m.Age) <br />
19. <strong> Ciudad del usuario: </strong> @ Html.DisplayFor (m => m.City) <br />
Controlador: HomeController.cs
SALIDA
RESUMEN:
Sin embargo, hay mucho que aprender en los formularios web, pero este capítulo se centra en la
comprensión simple de cómo se puede crear Html.BeginForm. Agregué el ejemplo de programación
simple pero completo que seguramente lo ayudará a crear un formulario usando el Método de Extensión
Html.BeginForm. Sin embargo, también he escrito algunos temas avanzados en WebForms y si desea
obtener más información al respecto, visite el siguiente artículo.
Más ejemplos
4 maneras de crear un formulario en ASP.NET MVC
Objeto FormCollection en ASP.NET MVC con ejemplo
Insertar, actualizar, eliminar usando modelos con Entity Framework en ASP.NET MVC5
MÁS ARTÍCULOS
EJEMPLO:
Modelo: UserModel.cs
Ver: Index.cshtml
1. @utilizando HtmlHelperDemo.Models HtmlHelperDemo . Modelos
2. @model UserModel
3.
4. <h1> Html . Comenzar para el ejemplo </ h1 >
5.
6. @using ( Html . BeginForm ( "Index" , "Home" , FormMethod . Post ))
7. {
8. <strong> @Html . NameFor ( m => m . NombreUsuario ) < / strong> @ Html.TextBoxFor (m => m.UserName) <br
/>
9. <strong> @Html . NameFor ( m => m . Edad ) < / strong> @ Html.TextBoxFor (m => m.Age) <br />
10. <strong> @Html . NameFor ( m => m . City ) < / strong> @ Html.TextBoxFor (m => m.City) <br />
11.
12. < input id = "Enviar" tipo = "enviar" valor = "enviar" />
13. }
Salida
Html.EditorFor Tutorial Con Exmaple - ASP.NET MVC
En este tutorial, aprenderás:
Html.EditorForel método auxiliar representa el control de entrada como un cuadro de texto, pero la
diferencia es que el método auxiliar Html.EditorFor representa el control de entrada según el tipo de
datos. Proporciona un excelente manejo sobre el control de entrada que un control de cuadro de texto.
Por ejemplo, si definió una propiedad de cadena, una propiedad int y una propiedad booleana en la
clase modelo, el método EditorFor Extension procesa automáticamente el control de entrada adecuado
en función del tipo de datos.
EJEMPLO DE PROGRAMACIÓN
Modelo: UserModel.cs
Ver: Index.cshtml
1. @utilizando HtmlHelperDemo.Models
2. @model UserModel
3.
4. <h1> Html . Nombre Para Ejemplo </ h1 >
5.
6. @using ( Html . BeginForm ( "Index" , "Home" , FormMethod . Post ))
7. {
8. <strong> Nombre < / strong> @ Html.EditorFor (m => m.UserName) <br /> < br />
9. <strong> Edad < / strong> @ Html.EditorFor (m => m.Age) <br /> < br />
10. <strong> Ciudad < / strong> @ Html.EditorFor (m => m.City) <br /> < br />
11. <strong> Handicap < / strong> @ Html.EditorFor (m => m.isHandicapped) <br /> < br />
12. < input id = "Enviar" tipo = "enviar" valor = "enviar" />
13. }
Salida
MÁS ARTÍCULOS
Ejemplo Completo De Html.ActionLink En ASP.Net MVC 5
En este capítulo, aprenderás:
Html.ActionLinkSe utiliza para crear hipervínculo. Este método de acción genera un hipervínculo en
las páginas html, pero redirige al método de acción, no directamente a las páginas de visualización.
EJEMPLO DE PROGRAMACIÓN
1. @utilizando HtmlHelperDemo.Models
2. @model UserModel
3.
4. <h1> Ejemplo Html . ActionLink </ h1 >
5.
6. <! - Redireccionar en el mismo controlador ->
7. @ Html . ActionLink ( "Página de contacto" , "Contacto" )
8.
9. < Br />
10.
11. <! - Redirigir en otro controlador ->
12. @ Html . ActionLink ( "Página de informe" , "Índice" , "Informe" )
SALIDA
Salida de HTML
<! - Redireccionar en el mismo controlador ->
<br />
RESUMEN
Como ha visto, Html.ActionLink se utiliza para representar un hipervínculo en html. No apunta a ver la
página directamente, sino que apunta al método de acción. En el siguiente capítulo, aprenderá
Html.RouteLink en ASP.Net MVC 5.
1. utilizando System.ComponentModel.DataAnnotations;
2.
3. espacio de nombres HtmlHelperDemo . Modelos
4. {
5. clase de usuario UserModel
6. {
7. [ Requerido ( ErrorMessage = "El nombre es requerido. No puede estar vacío" )]
8. Cadena p ú blica Nombre de Usuario { Obtener ; conjunto; }
9. }
10. }
2. Validación en el controlador
1. [HttpPost]
2. Í ndice de ActionResult p ú blico ( UserModel um )
3. {
4. if ( ModelState . IsValid )
5. {
6. volver Ver ( um );
7. }
8. m á s
9. {
10. volver Ver ();
11. }
12. }
3. Viendo un mensaje de error en la vista.
1. @utilizando HtmlHelperDemo.Models
2. @model UserModel
3.
4. <h3> <code> Html . ValidationMessageFor Ejemplo < / código> </ h3 >
5. < Br />
6.
7. @using ( Html . BeginForm ( "Index" , "Home" , FormMethod . Post ))
8. {
9. <strong> Nombre </ strong > @ Html . EditorFor ( m => m . NombreUsuario )
10. @ Html . ValidationMessageFor ( m => m . UserName , "" , new { @class = "text-danger" })
11. < Br /> < br />
12. < input id = "Enviar" tipo = "enviar" valor = "enviar" />
13. }
14.
15. < Br /> < br />
16. <strong> Nombre de usuario : < / strong> @ Html.DisplayFor (m => m.UserName) <br />
Salida de HTML
data-val = "true"
tipo = "texto"
data-valmsg-for = "UserName"
</span>
En este tutorial, traté de brindarle un conocimiento fundamental sobre qué es y cómo usar
Html.ValidationMessageFor en ASP.Net MVC 5. Puede aprender la validación completa de
formularios Html con un ejemplo en ASP.Net MVC 5 aquí.