Transcripciones
1. Introducción: Hola y bienvenidos
a este curso, desarrollo web
básico
con ASP.Net Core F5. Soy tu instructor para
VOR Williams y soy ingeniero de software y
conferenciante en este curso, vamos a estar aprendiendo
sobre ASP.Net Core, que es un framework web libre y de
código abierto. Y también es el
sucesor de ASP.Net, que es desarrollado por Microsoft. En este curso,
también vamos a estar buscando conectar nuestra aplicación
ASP.Net Core a una base de datos de Microsoft SQL Server. Para ello,
vamos a estar
mirando Entity Framework, que es una biblioteca
que está especialmente diseñada para este
tipo de interacción. También vamos a estar
mirando el control de fuentes, que es una práctica de camiones
y manejo de cambios cumplir con la escuela fuente
estará utilizando GitHub como la herramienta para facilitar
esta práctica. Este curso asume
que tienes conocimientos
fundamentales en
HTML, CSS y C-sharp. Si no, entonces te
animo a que
consultes mis otros cursos
sobre esos temas. Con todo eso dicho y hecho, empecemos y no puedo esperar a verte en el curso.
2. Configura un proyecto básico de ASP.NET: Bienvenidos de vuelta chicos. En esta lección, solo
vamos a estar sentando nuestro entorno de desarrollo para nuestra aplicación ASP.Net Core. Y lo que me gustaría
que hicieras es simplemente golpear Start y escribir en Visual
Studio Installer. Ya tienes instalado Visual
Studio. Lo que tenemos que hacer es instalar algunas más cargas de trabajo para que podamos llegar a azotar el desarrollo. No lo hagas, una vez
que subas a ese instalador, deberías ver una ventana mirando algo parecido a esto. Y lo que puedes hacer
es hacer clic en Modificar. Y al pulsar Modificar, vas a ver una lista de cargas de trabajo
potenciales
que puedes instalar. Por lo que ya tienes el
para el desarrollo de escritorios. Lo que necesitarías
es el para ASP.Net y desarrollo web. Entonces si ya no lo
tienes marcado, entonces él puede seguir adelante y
tomarlo y luego
seguir adelante e instalar. Por lo que se puede ver que
ya tengo la mía partió para hacer eso y se pueden
instalar otras cargas de trabajo. Pero para este curso en particular
o las próximas lecciones, definitivamente queríamos
tener ASP.Net y desarrollo
web
ticked e instalado. Ahora una vez que haya completado
esa instalación, puede seguir adelante y
lanzar su Visual Studio. Y a partir de ahí vamos
a crear un nuevo proyecto. Para que puedas seguir adelante y
crear nuevo proyecto. Y estamos buscando una aplicación web
ASP.Net Core. solo puedas escribir en la
búsqueda ASP.Net Core Web App. Por lo que verás
bastantes de ellos. Y notarías que tienes la aplicación web que
utiliza páginas de Razor. También tienes la aplicación web core que utiliza el controlador de
vista modal. Y luego tienes API web y tienes un montón
de otras plantillas. A medida que obtienes más experiencia, puedes experimentar con
las diferentes plantillas. Pero para esto, por supuesto, vamos a estar mirando aplicación web
ASP.Net Core
usando páginas de Razor. Podemos seguir adelante y golpear eso. Adelante y pega Siguiente. Y vamos a estar llamando este proyecto auto arrancando. La idea general detrás los proyectos será que
estemos construyendo una app que permita a la gente reservar o rentar un auto de una empresa
según sea necesario. Lo siento, es agradable y simple
habilidad será lo suficientemente
complicada maravillosamente como para que pongamos los fundamentos
debajo de nuestros cinturones. Por lo que sólo podemos seguir
adelante y golpear Siguiente. Y vamos a
estar usando dotnet F5. Y luego podrás habilitar la compilación de tiempo de ejecución de la
maquinilla de afeitar, que nos ayudará con
nuestra depuración y pruebas. No vamos a sentarnos a la
autenticación ahora mismo. Lo vamos a hacer manualmente
más adelante para que podamos ver todos
los componentes que
encajan con esos
ajustes en su lugar. Puedes seguir adelante y golpear Crear. Ahora que tenemos nuestro
proyecto en marcha, lo que vamos
a hacer es simplemente echar un vistazo rápido a lo que
sacamos de la caja. Obtenemos esta estructura del proyecto. Y cuando golpees Start, notarás que
obtenemos aplicación web ya hecha. Tenemos la app web, tenemos nuestra barra de navegación en la parte superior,
el área de contenido. Entonces es muy similar a lo que habríamos
visto cuando estamos mirando los fundamentos del desarrollo
HTML, HTML. En este punto, no hemos
escrito ningún código, pero aún así tenemos una
página web arriba con al
menos dos páginas para
nuestro placer visual. Vamos a estar
perforando hacia abajo en básico de lo que
sacamos de la caja. Si bien todo esto se
genera donde encontramos lo que se pega y
hace cuando
lleguemos, estaremos explorando la estructura de carpetas
que obtuvimos con esta aplicación web
y lo que todo de estos archivos significan y representan.
3. El proyecto de la visita de Razor: Muy bien, así que estamos de vuelta. Vamos a estar discutiendo la dinámica o al menos
una estructura de carpetas y los diferentes archivos
que obtenemos en nuestra aplicación ASP.Net Core. Ya has pasado
y mirado HTML y CSS, y JavaScript
y cómo se
combinan
todos esos factores para darte un
sitio web y la red de fondos. Pones un nuevo proyecto
en una carpeta 12, tendes a poner los
diferentes tipos de activos, las imágenes en su propia carpeta, archivos
CSS en su
propia carpeta, etcétera Bueno, esto solo se basa
en esos principios. También habrías visto que durante los ejercicios de codificación de C Sharp donde cada vez que estabas
creando un proyecto, tienes una carpeta completamente
nueva donde habrían estado
todos esos archivos para el
proyecto. Es el mismo principio o solución está en una
carpeta por sí misma, el proyecto es suficiente
todo por sí mismo. Y luego hay
diferentes archivos y carpetas en lugar de
esa otra carpeta. Empecemos con
mirar propiedades. Propiedades nos da
este archivo dependencias uno tiene que ver con
bibliotecas y frameworks. Verás más de
eso a medida que avanzamos. No voy a aburrirme, ya
sabes, o
abrumador con eso. Pero si miras propiedades, verás que
tienes un archivo JSON que tiene alguna configuración de lanzamiento, por lo que generalmente no tienes que
modificar este archivo en esto, estás haciendo algo
muy explícito, que no estamos haciendo en
este momento y
probablemente no lo hagamos dentro
del ámbito de este rumbo. Pero es bueno apreciar
lo que hay aquí. Verás que tienes la aplicación URL
Canadá definida aquí, donde dice que
tienes la URL en una dirección HTTP y luego
tienes el puerto SSL, lo que significa que cuando pulsamos Start, estamos va a
poder acceder a la aplicación ya sea
escribiendo en esta URL o HTTPS barra de dos puntos slash host
local con el
número de puerto de los puertos SSL, generalmente no tiene que
cambiar nunca esto. Entonces es bueno
entenderlo una vez más. Siguiente carpeta mayor es
nuestra carpeta raíz www. Por lo que realmente no se ve
como una carpeta basada en la retención. Las otras carpetas realmente miraban en esta estructura de
proyecto, pero lo que te darías cuenta es que tiene subcarpetas en ella. Entonces esta es una carpeta que almacena los
archivos estáticos para el sitio web. Entonces cuando decimos
archivos estáticos, como se puede ver, es él la carpeta CSS, la carpeta JS, y
otra llamada salto. Todos esos activos y los archivos
CSS, archivos JavaScript, o
bibliotecas de terceros que podrían ser una combinación de archivos CSS y
JavaScript o jQuery. Te gustaría almacenar
todos ellos dentro de la raíz www porque
la propia aplicación tipo de mapea esta ubicación
y hace que sea muy fácil
acceder a esa ubicación cuando
quieras acceder al CSS, el JavaScript, o cualquiera de
los demás archivos activos. Para que puedas ver viene incorporado ya hecho con bootstrap,
jQuery, validación jQuery, y otra biblioteca
para la validación de jQuery. Entonces todas esas bibliotecas
tipo de salen de la caja. Si queremos sumar
otras bibliotecas, que vamos a hacer más adelante, siempre
podemos hacer clic derecho
y podemos ir a Agregar. Y luego hay una característica para simplemente instalar la biblioteca
del lado del cliente. Cuando llegamos a ese punto, en realidad
podemos simplemente usar esto y buscar nuestra biblioteca. Y
nos mostraría todos los resultados, cómo podemos simplemente instalarlo en la aplicación sin consultar
manualmente y pescar. Así que recuerda cuando estábamos haciendo nuestra inclusión jQuery y así sucesivamente wet para realmente
ir al sitio web, obtener el archivo y copiar
localmente, o usar un CDN. Mientras se utiliza este gestor de
biblioteca. Podemos hacer todo eso aquí
en tan solo unos clics. Y en realidad
solo lo descargaría a nuestro sistema o a nuestras carpetas de
proyectos para nosotros. Muy bien, entonces ahí es donde realmente se mantienen todos nuestros archivos
estáticos. Sepa si alguna vez has visto
una aplicación MVC, estarás acostumbrado
a ver
las carpetas modelo, ver y controlador fuera de la caja. Si no, eso está bien. Pero la diferencia entre la plantilla MVC o
controlador de vista de modelo y
la plantilla de páginas Razor
es una grasa que
la forma en que
se estructuran las páginas y sus activos es diferente. Con el MVC, tienes el modelo que es un
archivo de clase por demasiado. Tiene la vista,
que es el archivo HTML. Y luego tienes un controlador que era la inteligencia. En páginas de Razor. Lo que han hecho es que
dan una carpeta llamada páginas, y luego cada página viene con el CSS HTML o el archivo HTML, así
como archivo de código R, que duplica tanto como la
inteligencia como el modelo. Echemos un vistazo a la página de
índice. La página de índice. Recuerda de HTML Basics, siempre nombra tu índice de
primera página. Bueno, aquí está Microsoft a la altura de ese principio muy
simple. Entonces cuando hago clic en
la página de índice, el archivo CSS HTML, entonces verás que esto
es realmente sólo un archivo HTML. Sí, tiene algunos adornos,
pero una vez que superes eso,
que discutiremos más adelante, notarás que son
las mismas etiquetas que habríamos aprendido
de HTML Basics. La etiqueta div, la etiqueta de imagen, la etiqueta P, y cualquier otro
objetivo que usted sabría, todos
son utilizables
dentro de este archivo, el punto CSS, el archivo CSS de punto HTML. Parece el código C-Sharp que
acabamos de ver. Muy bien, entonces tenemos
la clase pública llamada índice modelo colon. A esto se le llama herencia. El modelo de índice está
heredando del modelo de página, que es una clase base
que viene incorporada. Pero el hecho
del asunto es que a esto
se le llama modelo de índice. Y si echas un vistazo
hacia atrás a la clase de índice, notarías que en
la parte superior dice uno, soy una página, y luego dos, le dice al modelo. Se nota una declaración de que
mi modelo es modelo de índice. Eso significa cualquier cosa que yo cualquier cosa que se
defina en lugar de modelo de índice se puede acceder desde la página web a
medida que construimos sobre ella. Eso lo apreciarás un poco más. La mayoría, la mayoría de las veces cuando
ves las IRA son la página más, si no todas las veces, entonces las
vas a ver en parejas. Vas a ver
que es dot CSS HTML. Yo soy el que
es dot CSS HTML. En función de tu Visual Studio, es posible que los tengas en realidad
algo anidados por defecto, pero en realidad puedes
cambiar ese anidamiento. Sé que está deshabilitado para mí, puedo habilitarlo. Tiendo a pensar que esto es un poco más ordenado porque
cuando está anidado, solo
puedo hacer clic y luego veo el archivo resultante directamente
debajo de ese. A veces se vuelve
confuso cuando todos ellos están listados así,
pero eso depende de ti. Sólo te estoy mostrando
que puedes enumerar, puedes anidar y
deshabilitar eso a voluntad. Entonces como dije, cada vez que creas una página, o al menos una página de
resultados estándar, vas a
terminar con
ambos archivos conociendo
la carpeta compartida. Aquí es donde los archivos
que van a ser utilizados o accedidos por
todos los demás archivos, todas las demás páginas, Ahí es donde se almacenan estos. Echemos un vistazo al diseño. No, habrías notado
que con nuestra página de índice, déjame simplemente saltar buffer
con índice rápidamente. Habrías notado que la página de
índice no tiene esa estructura de esqueleto HTML que habíamos discutido
desde lo básico. Recuerda que siempre empezamos con cinta
adhesiva y luego las
etiquetas HTML y luego golpeamos
y cuerpo y luego ponemos el contenido, esto va directamente
al contenido. Lo que sucede es que están utilizando lo que llamamos un layout. O de vuelta en el día lo llamamos plantilla o una obra maestra, donde trazan la temporal una vez
en lugar de
repetir, repetir, repetir esta
plantilla cada PDF, 20 páginas, hay que
repetir esta plantilla? Sí, en un sitio web básico, es absolutamente necesario. Pero lo que hicieron fue una especie
de resúmenes que trabajo ocupado. Recuerda una vez más,
los frameworks están configurados para reducir la cantidad de
repetición o reducir la probabilidad de que tengas
que repetir ciertas cosas. Porque saben que
tienes que ver con esta plantilla HTML
cada vez. Cuando desarrollaron
un.the.net Core Framework, lo
que hicieron fue crearon al mismo tiempo y luego te
permitieron renderizar los
diferentes pH del interior de esta área llamada render body. Lo que realmente sucede es
que cada página siempre va a tener la
etiqueta HTML, la etiqueta head. Esto se establece globalmente COC, siempre está vinculando a las hojas de estilo para que no
tenga que
hacer eso en cada página. Tienes la
etiqueta corporal que va a tener la
oreja de cabecera con el nervio, por lo que no tienes que crear
lo suficiente en cada página. Y entonces
siempre vas a tener esa clase div con container. Recuerda que miramos eso, esa clase div es
igual a container. Y luego sí, vas
a ver algunas etiquetas nuevas. Puedes usarlos, es posible que
nunca los uses en este punto. Realmente no tienes que hacerlo. Me preocupa
, pero el punto
es que cualquiera que sea la razón por la que PG crea con automáticamente obtener
renderizado dentro de esta área, están dentro de esta plantilla
general. Para leerte aquí
cambiará el local, los Layouts, lo siento, fuera de
todas las páginas a nivel mundial. Esa es una forma más fácil de mantener tu sitio web
porque ahora no tienes que
hacerlo a través de todas las páginas
como habríamos visto cuando estamos haciendo el HTML
básico y CSS. Todo eso es una especie
de presentado aquí. Se ven las
inclusiones de scripting en la parte inferior de la página y
se puede modificar todo. Entonces veamos, por ejemplo, que lo que se
generó automáticamente para nosotros sería el
título View Data de la página. Si volvemos a nuestra página de índice, veríamos que ver el
tipo de datos es igual a homepage. Eso es lo que se
renderizaría en lugar de
su título de datos. Entonces eso es como una variable
y un marcador para lo que esté poniendo
en cualquier pH que tengamos. Una vez más, el título es lo que se muestra en el
navegador en la tina. Quería cambiar
esto de ser un poco de texto a solicitud de
reserva de autos. Un poco más legible por humanos. Pero ese es el título
en la barra de navegación, lo siento, en la tina
del navegador, entonces el navbar también tiene carb mirando arriba
escrito aquí mismo. Entonces lo que voy a
hacer es control y F5 y esa férula para
correr sin depurar. Y cuando surja esta app, lo primero que quiero que
tomen nota es el hecho de que esto está diciendo homepage. Entonces eso es cargar
la página de índice. En caso de que no
creas que ahí está. Indice dice homepage, ¿verdad? Por lo que está cargando la página de inicio o la página de índice aplicación de
reserva de autos dash. Eso son textos estáticos que
ponemos en el título. Muy bien, ¿y si quisiera
actualizar este bit de texto aquí? Yo tampoco quiero decir carb
enganchado ahí arriba. Entonces. Puedo ir y encontrar ese poco
de código que está aquí mismo. Y lo voy a cambiar a solicitud de reserva de autos. Voy a salvar algo de
humor. Siempre ahorre. Desafortunadamente, no los he
visto implementar ningún
AutoCAD en Visual Studio. Eso hubiera sido muy guay, pero supongo que no lo
hicieron, no lo han hecho por una buena razón. Pero después de hacer ese cambio, solo
voy a Control,
refrescar mi navegador. Y he aquí, vemos el cambio que
se está haciendo y ese cambio una
vez más, estos globales. Entonces si voy en privacidad
para Go on home, cada una de estas páginas es solo heredando del diseño
general. Por lo que sólo voy a
actualizarlo también en el pie de página. Sólo puedo repasar, cambiarlo en el pie de página. En todo caso, quería
hacer trampa y cizallar. Quiero decir, esto es decir 2021
si necesitaba actualizarlo a 2022 o no mostrar
solo privacidad, poniendo todo lo que
necesito poner, todo eso se está
actualizando globalmente. Entonces después de hacer ese cambio, sólo
voy a
refrescar una vez más. Y ves que el cambio no
se refleja. Eso es lo fácil que es
realmente modificar globalmente ¿verdad? Ahora si quisieras
modificar las páginas, bueno, es sólo un montón de HTML. Entonces esto es lo que he ido a hacer. Voy a ejecutar
antiguo el HTML de nuestra clase básica que
teníamos en nuestra página de índice. Y sólo voy
a darle una bofetada a esta nueva página de índice y
vamos a ver qué pasa. Entonces aquí está nuestro HTML
desde lo básico. Lo que pasa una vez más es que no
necesitamos todas estas etiquetas. Necesitará esto, el
cuerpo HTML todo lo que realmente quiero. Ni siquiera necesito el contenedor. Recuerdo que tuvimos que
repetir Kantian o
tenemos que repetir la
novela por todas partes. Y luego agregamos un
div para el contenido. Bueno, lo que hay en el contenido
es lo que realmente necesitamos, que es lo que
se muestra en la página. Tampoco necesitamos un pie de página
porque tenemos nuestro pie de página. Sólo voy a tomar
todo este contenido. Realmente no estoy preocupado por el funcionamiento del botón aún no
están. Bueno, lo que voy
a hacer es simplemente reemplazar el contenido predeterminado
que vino con intento con
contenido REA de nuestro curso. Fui a salvar eso y luego
hacer una mirada refrescante a eso. En ninguna parte viendo que
sólo podemos modificar las
páginas de la misma manera. Lo único es que no
tenemos que repetir nuestro esqueleto cada
vez que se hace por nosotros. Sólo necesitamos el contenido. Y observa que todas las clases
siguen funcionando para las pantallas de los botones y para
los perros y la fuente. ¿ Por qué? Porque el archivo CSS para Bootstrap ya está
incluido fuera de la caja. Ya
nos están dando ese archivo bootstrap. Ahora, una cosa es que
hemos conseguido a las cinco. Esto podría cambiar en el futuro, Pero el nodo correcto que es la biblioteca
bootstrap, puedo perforar todo el camino hacia abajo
y ver la grasa física. Entonces cuando lo dije, te
facilitan el acceso. Todo lo que realmente necesitas
es esta slash tilde. Y entonces comenzará a
darte todas las carpetas en
la jerarquía de carpetas de
dub, dub, dub root. Si quisiera llegar al
archivo CSS que está en mi sitio CSS, o quería llegar a la
carpeta CSS y lo diré hoy, luego barra, y luego comienza a enumerar todas
las carpetas para mí. Quería llegar al archivo CSS. Muy bien, entonces
por eso dije que todos tus archivos estáticos a los
que necesitas
acceder pueden ir a acceder pueden ir a carpeta
dub, dub, dub root, y eso lo hará muy fácil. Pero yo estaba haciendo el
punto de que podemos perforar todo el camino
hasta el archivo bootstrap. Y la
versión Bootstrap que
sacamos de la caja es 4.3.1. En lo básico
miramos usando cinco, pero luego con esta plantilla solo
nos hacemos bootstrap, bosques
bootstrap, perdón, lo
cual no es gran cosa porque las diferencias entre los dos no son tan grandes de un trato. Y la documentación siempre
está ahí en caso estés usando algo de uno que no esté
disponible en el otro, como no me ves
tratando de usar Bootstrap para clases que no están
en Bootstrap F5, siempre se
puede volver a
verificar eso. Muy bien, entonces ahora que tenemos una mejor comprensión de cómo funcionan
el diseño y los
archivos en general. Y ahí hay otros archivos, led view importaciones y vista de inicio. Si comienzas básicamente dice que
solo usa ese archivo de diseño. Entonces si tenemos varios diseños, en realidad
podemos crear
otro layout. Si quisieras que un tipo de usuario viera un layout
y otro tipo de usuario para ver otro layout o tener diferentes
diseños por página, sea cual sea,
en realidad puedes dictar cuál
se deben utilizar. Todas esas cosas
vendrán a su debido tiempo. Por lo que sólo voy a continuar el recorrido por los
archivos y carpetas. Y pasemos a
la aplicación settings.js. En la aplicación settings.js, Zen es como un
archivo de configuración donde
básicamente estipulamos cosas
como cadenas de conexión. Ya sabes, dónde buscar la base de datos en configuraciones estáticas que necesitamos tener
en su lugar para asegurarnos que ciertas características se
desarrollen de manera particular. Todas esas cosas
se pueden definir en ese archivo de configuración de la aplicación. Tenemos el program.cs, que es muy similar a lo que habríamos visto
en nuestro C-Sharp en diverso, donde cada vez que
creamos un nuevo proyecto, teníamos un archivo llamado program.cs que empató
método up llamado media. Es lo mismo, program.cs, Y aquí está nuestro método principal. Entonces todo lo que sucede
es que cuando
golpeas IS Express nuestro inicio de calor, básicamente simplemente llamando al programa, llamando al método medio. Y el método principal dice construir
y ejecutar la aplicación. Entonces, ¿dónde sabe qué configuraciones
poner en marcha? Utiliza el
archivo de inicio y el inicio aquí representa la
startup sobre el archivo CS, que es otro lugar
donde viven las configuraciones. Aquí en el constructor de startup, ves que están haciendo
lo que llamamos inyección. Entonces más tarde
te pones en un estándar, pero están inyectando
un objeto de configuración de IA
que representa OER hasta el archivo JSON settings.js. Para que si cualquiera que sea la
configuración estática que
pongamos ahí, podamos acceder a ellos y
luego vía código hasta que use esta configuración cuando esté inicializando
esta característica. Entonces el archivo de inicio es básicamente donde ocurre toda la inicialización de la
característica. Porque ves
aquí, estamos viendo servicios dot dirección o páginas más adelante cuando estamos agregando autenticación y otras
cosas al proyecto, verás que tenemos que
venir aquí y hacérselo saber. De acuerdo, por favor use este módulo, por favor use este middleware, por favor utilice esta
función que vamos a
agregar a este archivo a
medida que la aplicación crezca. El punto de inicio css
realmente acaba de encargarse de dictar lo que debería estar en su lugar para el momento en que se inicie la
aplicación. Entonces si estropeo algo en este expediente o ciertas
cosas en este expediente, si iba a
entrar a esta línea
ya
que no creo que esa
línea parezca útil. Y luego traté de correr,
entonces va a estar recibiendo este
error diciendo que
hay algún desajuste entre lo quiero hacer y qué
características están disponibles para mí sin tratar de leer
esta flecha palabra-para -palabra. Es básicamente que he visto
que estás tratando ejecutar inicializar la compilación en
tiempo de ejecución, pero no vi dónde me
dijiste que puedo usar el conjunto de funciones para la compilación en
tiempo de ejecución. Esa línea que comenté es integral a las características que hay que llamar en
otra parte de la aplicación. Para que a medida que avanzas y
entiendes Who.NET Core funciona, entenderás qué
bibliotecas deben ir a dónde. Una vez más, esto no es
algo que necesites memorizar. Solo necesitas
tener una buena idea de cómo funciona esta cosa para que
cuando quieras una nueva característica, puedas ir e investigar
adecuadamente para
averiguar qué exactamente necesitas
incluir para ponerlo
en marcha . Eso es realmente todo para el recorrido por
la estructura de carpetas. Cuando volvamos,
empezaremos a trabajar un poco más en nuestra interfaz y a explorar
cómo todo está conectado.
4. Comprender la sintaxis de Razor: Bienvenidos de vuelta chicos. En esta lección, vamos
a estar mirando cómo
podemos experimentar con
nuestras matrices de melocotones. Ignoro el modificador de PHS
o suficiente barra, e incluso miro cómo probablemente
podemos inyectar nuestra molestia en
diferentes lugares, similar a cómo vimos que se
inyecta en la startup. Así que empecemos
analizando lo que queríamos. Entonces voy a crear
una página muy sencilla. Sólo estoy cerrando todas las instrucciones
descripto. Y luego en las páginas voy
a crear una nueva carpeta. Entonces esto siempre es una
buena idea porque cuando se tienen las
diferentes áreas, lo que pasa es que
tienes tres operaciones principales. Crear, leer, actualizar, eliminar. Por lo que la mayoría de las veces
quieres crear una carpeta. Y luego dentro de esa
carpeta tendrías las diferentes páginas para soportar
las diferentes características. Ya que estamos haciendo reservas
de autos, lo primero que
necesitaríamos
probablemente tener serían los autos. Muy bien, así que voy a
tener una carpeta llamada autos. Y dentro de esta
carpeta para los autos, tendría un fichero de índice que representaría
la primera página en la que aterrizas cuando votas por
mirar autos, que normalmente sería
como la lista de autos. Tienes la edición, tienes el delete y tienes que leer, lo que significa que estoy mirando a
unos autos particulares detalles. No estamos listos para meternos en
todas esas complicaciones. Solo estoy explicando por qué tenemos esa estructura de carpetas
que verás que como un tema común a lo largo este curso y en la
mayoría de las aplicaciones web, independientemente de la tecnología
o el stock sea usado dentro de autos, vamos a crear un archivo de índice. Así que sólo voy a
seguir adelante y hacer clic derecho y
golpear Añadir ir a la página de la maquinilla de afeitar. Y lo que estamos haciendo aquí es
usar las herramientas de andamios. Las herramientas de andamios
nos permiten tipo de generar archivos. Supongo que Microsoft
ha visto que
conocemos el tipo de archivos que
queríamos, nuestro framework. Y estas son cosas
que tendrías que repetir manualmente h veces. Entonces aquí está la herramienta de andamios. Usa esto y haremos la
mayor parte del trabajo pesado, poniendo en todo el B6, asegurándote de que no olvides nada y puedes
continuar desde ahí. Entonces supongo que por eso nos
dieron esta bonita herramienta. Sólo vamos a crear
un pH de resultado vacío para no, fui a golpear Agregar y lo
voy a llamar index.html, CSS HTML, y
ya está ahí para mí. Así que voy a seguir
adelante y pegaré Agregar. Por lo que ahora tengo este
nuevo archivo de índice. Entonces si volvemos a mirar, vemos páginas slash cars slash
index que solo
te estoy dando una idea de la URL porque index siempre
será el primer archivo. Entonces cuando vayamos a recortar autos, automáticamente buscará el archivo de índice para
cargar eso primero. Muy bien, entonces lo
que queremos hacer aquí, voy a decir Ver datos. Vamos a estar escribiendo estas
cosas manualmente nosotros mismos. Fuimos a decir título. Recuerde que se
ve, el tipo de datos es un marcador de posición que se
alimenta en el diseño. Y sólo voy
a ver lista de autos. ¿ Está bien? Lo que quiero hacer
es simplemente decir H1, lista de autos, algunas
cosas simples. No estamos listos para complicarnos
demasiado o simplemente sudar o apetitos
y entender qué, y si miras
esta página de índice, verás que se
ve muy similar a la otra página de índice. El motivo por el que las
páginas de índice no se tocan es que las subcarpetas en las que
están son diferentes. Este índice está en
las páginas generales, por lo que esta es toda la página de toda la aplicación. No obstante, cuando
entramos en los autos de barra, los autos
smash tendrán su propia primera página y archivo de índice está
haciendo para ser diferente, pero verá que
tienen los mismos 2s directos. Esta es una página, Aquí hay
un modelo y usando el espacio de nombres allí para este modelo versus el espacio de
nombres para el otro. Una vez más, obtenemos
nuestro código detrás archivo para nuestro modelo de índice. Si quisiera navegar
a esta nueva página, lo que necesitaría
hacer es modificar mis alelos y dejar que la
barra navbar tenga el nuevo enlace. Entonces sólo voy a copiar
uno que existe ahí está. Simplemente copiaré el enlace de la página de inicio
existente y lo cambiaré todo para verlo para
que no tengamos un área. Tenemos la página ASP. ¿ Dónde se paga la ASP? Entonces las páginas ASP ya no
recortan el índice. Es el índice de slash cars slash. Aviso que no necesariamente necesitamos la extensión donde
no necesitamos la extensión. Entonces es aquí donde tipo
de obstruyeron algunas de las cosas
a las que estamos acostumbrados con ba, HTML básico. Porque si lo
miras con cuidado, aquí no
hay etiqueta de deriva H. No decir que no podemos usar
una naturaleza si pudiéramos. Podríamos decir que h es
igual a tope adentro. Si vamos a
ver hf es igual a construir la URL exacta para
llegar de aplicación a página es que los autos van a ser un poco difíciles
porque no podemos sólo ver el nombre del archivo lo haría extensión como si no pudiéramos CSS
básico y HTML. Entonces lo que nos han dado
se llaman ayudantes de etiquetas, donde dirán solo 0 me basado en el camino de
la estructura de carpetas. Y voy a generar
ese H ref para ti. Entonces la página ASP es igual a, y sé que tengo que
ir a recortar autos. Entonces la primera slash significa la
raíz de la aplicación. Entonces tengo que ir
a la carpeta de autos. No tuve que ir
al archivo de índice. Ahí es donde debe conducir este
enlace. Generará el riff
H en tiempo de ejecución. Lo veremos en unos pocos. Por lo que quiero que esto diga autos. Muy bien, así que ahora tenemos
una nueva URL con una nueva página. Y voy a
seguir adelante y correr como,
oh, sólo estamos haciendo cosas de interfaz de
usuario. Podemos simplemente hacer Control F5. No tenemos que
depurar cada vez porque de esta manera
es un poco más rápido. Ahora estamos cargando
nuestra página de aplicación. Recuerda que esta es
nuestra página de inicio que
migramos desde nuestros archivos estáticos. Y si quisieras
migrar a los otros, y probablemente también
seré una buena práctica para ti. Pero ahora mismo estamos
empezando con esto. Y luego cuando hago clic en autos, antes de que incluso haga clic en autos,
es inspeccionar elemento. Inspeccionar elemento nos
va a mostrar el H ref por cómo llegamos ahí. Si miras el miedo de las aurículas, dice barra de EHR,
eso significa ir a casa. Slash cars significa meta
de la URL base, que es lo que
vemos en el navegador, localhost con ese número de
puerto slash cars. Si nos fijamos en éste,
verás localhost slash privacidad. Cuando voy adelante
y golpeé los autos. Entonces veo que estoy
aterrizando en mi nueva página, que es lista de cartas. Ves que ni siquiera tenía
que decir especialmente index.html. Porque por defecto, en todas partes navegador irá primero a
la página de índice. Entonces eso es realmente todo
lo que se necesita para construir un nuevo enlace y conseguir que las
páginas se vean. Muy bien, ahora
veamos en espera el archivo de código y el
archivo HTML puede interactuar con él. En este momento estoy mostrando esa lista de autos texto
directamente en la página. Tal vez no siempre
sea el caso como
vimos cuando estábamos haciendo
la codificación C Sharp. En ocasiones los datos que
necesitan ser mostrados o interactuados con estos
dinámicos a partir de la entrada del usuario. Necesita estar en una
variable de alguna manera, pero aún necesitamos mostrarla. Entonces, ¿qué pasa si quisiera
poner este bit de texto en una variable en el archivo de código
y luego tenerlo mostrado. Así que sólo voy a
cortarlo en el archivo de código. Lo que voy a hacer dentro de nuestra clase es
darle una nueva propiedad. Así que sólo voy a decir prop, presione Tab dos veces y
luego digo cadena. Y esto va a estar
golpeando entonces en get one, la página carga este método llamado get es el primer
método que se llama. Cada vez que
navegues a una página, vas a golpear eso en, conseguir lo que quieras
preparar para esa página. Si tienes que cargar datos, si tienes que sentarte en un mensaje
como si estuviéramos a punto de hacer no, tienes que
asegurarte de hacerlo en Git, entonces todo eso
estará listo para cuando
el pH se
cargue al usuario. En este caso, quiero ver rumbo es igual a los
tics que acabo de empatar, que es lista de autos. No, estoy preparando esta variable. Me estoy asegurando de que el
valor esté disponible ante el paciente o es como
hago que el valor se muestre en la página? Bueno, en la propia página, donde quiera que la quiera, que estaría
entre estas etiquetas H1. Y entonces esto es lo que
llamamos las vistas de la
navaja borrador o levantamos una sintaxis. Más bien, la sintaxis de la razón nos
permite entretejer o un
código C-Sharp con nuestro código HTML. ¿ Está bien? Así que en cualquier momento ves
un anuncio diciendo que te
está preparando para
escribir código C-sharp, porque este es el código C-Sharp que es un espacio de nombres de C-sharp. Sin embargo vemos HTML en el pH. Muy bien, así que déjame
mostrarte si quería imprimir algo desde el
lado C-agudo en lugar del HTML, todo lo que necesito es al firmar. Básicamente desde
esa directiva que estás a punto de escribir C-sharp, ningún modelo es como
una variable estática o una variable global
que representa un objeto del modelo, que es el código todo lo que sea público
en el código detrás archivo como este encabezado ya está disponible para mí por
mí viendo modelo dot. Entonces obtengo todas las propiedades del modelo incluyendo
mis personalizadas. Verás algunos
que no pusiste. No hay problema, no te desanimes, no te vuelvas flusterizado ni nada. Pero si miras de cerca,
ves golpear. Esa es la que acabo de crear. Sólo puedo decir encabezado model.py. Y luego si guardo
eso y luego refresco la página y lo que puedes hacer
mientras estás en este punto, siempre
puedes simplemente hacer una compilación
usando Control Shift y B. Y luego puedes simplemente
refrescar la página. Probablemente aún tengas abierto desde cuando estabas depurando. Pero entonces usted ve aquí que todavía
estamos viendo
una lista de autos. Y si inspecciona elemento, no
hay indicios de
que sea C-Sharp o HTML. En lo que respecta a Brasil, solo
está viendo el HTML. Entonces esa es una
oferta polar es una sintaxis. Podemos
poner dinámicamente cualquier cosa allí. Si quisiera
cambiar el encabezamiento en lugar de mantener toda
la página. Y si tuviera
que mostrar que toma múltiples lugares en lugar de tener la estática
toma múltiples bases, lo puse en una variable. Aquí. Lo cambio de variable solo para que
sepamos que está funcionando. Y fui a hacer una construcción. Ahora una vez que se haga esa construcción, voy a hacer una actualización. Y luego C, Ahí vamos. Esta cosa autos de variable. Eso hace que sea
mucho más fácil hacer una página dinámica donde
podríamos tener que cambiar
el texto sobre la marcha. Lo cambiamos una vez. Y entonces solo podemos
conocer referencia a ella
tantas veces en nuestro
código como queramos. A diferencia de cuando estábamos
haciendo nuestras páginas estáticas y si sumamos lo duro
toma múltiples lugares, tenemos que ir
manualmente y cambiar. Está en todas partes.
Podemos hacer eso aquí, sólo agradable y fácil. Entonces si replico todas esas páginas son cruzadas o todas
esas etiquetas, ahí está. Si lo cambio una vez, se cambia tantas veces. Muy bien, entonces esa es
una forma agradable y fácil de entender cómo funciona
la sintaxis. Cómo podemos poner algo
en el archivo de código y acceder a él dentro
de la página Razor. A continuación te voy a
mostrar nuestro primer pedacito de lo que llamamos inyección de
dependencia. Entonces lo que vamos
a hacer es mover este texto de encabezado de la variable
C-sharp aquí. Y
lo vamos a poner en la configuración de la aplicación y luego vamos
a mostrar un todo, solo se
puede inyectar un absceso. Estas configuraciones, comen
con bastante facilidad y las muestran en
la página de la misma manera.
5. Mensaje desde ajustes: Por lo que ahora vamos a
estar mirando cómo
podemos inyectar dependencias en nuestro pH y acceder a los datos una
manera muy lo que
llamamos desacoplada. Entonces esa es una de las cuatro características más y
marquesinas consulta
de enlace descendente hace lo que llamamos inyección de dependencia, que es un
principio muy importante en el desarrollo sólido. El D en la palabra sólido en realidad significa inyección
de dependencia. Tan sólido es un montón de
principios que nos
ayudarían a practicar prácticas de codificación limpias
y buenas. Y la inyección de dependencia
es muy importante. Y.NET Core mezcla
dependencia inyección, muy, muy fácil para nosotros. Lo que vamos a hacer es en la configuración de app dot archivo JSON, voy a poner en
una nueva configuración. Y una vez más, esto es sólo para fines demo solo para que podamos entender cómo fluye todo
tipo de y todo. Entonces vamos a
sentarnos a una coma. Y luego fui a
crear una nueva sección o un nuevo nodo para decir que
esto es mensaje. Por lo que estoy llamando a este mensaje. Entonces básicamente lo que tenemos es
como un par clave y valor. Entonces aquí estoy creando mi volumen y
todos están separados por comas. Se nota que el registro es la clave y luego el valor
es lo que llamamos objeto. Y el objeto tiene una clave
que tiene en otro objeto, y cada clave tiene su propio valor. Cada vez que ves un colon, lo que está a la derecha
es el valor, lo que está a la izquierda es la clave. Y luego la coma separa
los nodos principales. Entonces este es un nodo Min que
separa un host de carga, que es otra carga
o vinculación de claves Vardy. Y luego eso es coma. Por lo que estamos creando nuestro propio mensaje de par de claves
válido. Y entonces esa es la sintaxis
básica JSON. Agradable y fácil de entender. Mensaje va
a tener el valor. Esta es la lista de autos. Lección mensaje simple. Nada demasiado elegante. Sabes, lo dije en
las cosas opuestas. ¿ Cómo accedo a este
texto en la página para que se muestre más en
el ADN al usuario. Entonces lo que tenemos que hacer es ir
a nuestro archivo HTML index.js. Voy a crear
otra propiedad. Voy a llamar a
éste de menos. Por lo que para duplicar su
control D o Control CNV, similar a Visa Studio Code, pero también funciona Control D. Tengo otra propiedad. Lo estoy llamando mensaje. Y necesito sentar mensaje para tener el valor del archivo de cosas
opuestas, lo que significa que necesito
acceder a la configuración. Por lo que al igual que discutimos
en el archivo de inicio, estábamos inyectando aquí el objeto de
configuración. Y entonces eso
nos permitió acceder a cualquier cosa, o al menos los cargo
porque no escribimos esto. Quien escribió esto hizo esa inyección para poder acceder a la configuración
que lo hará. Vamos a
seguir ese modelo. Los principios de inyección de
dependencia uno, tienes un constructor, por lo que vamos a
escribir C TOR presionar Tab dos veces y luego
obtenemos el constructor. Comienza
listas de parámetros, lo cual está bien. Pero entonces tenemos que decirle a qué dependencias
debería ayudar. Entonces le voy a decir
que debería estar usando la configuración I. Y si lo
desea, sólo puede entrar en la
startup sobre CS y
se puede llevar la configuración I. Y estamos llamando a la configuración de
variables. Línea roja significa que
necesitamos una biblioteca, así que control dot y yo
sólo puedo seguir adelante y golpear Enter. Por lo que incluirá
la declaración using. Por lo que sólo hacemos eso y conseguir que la línea roja de la declaración de
uso desaparece. No, necesito inicializarlo. Entonces le estoy diciendo que
necesito la figuración ícono de la inversión de contenedor de
control o veré contenedor. El startup básicamente
pone todo en ese contenedor
entre la startup en el archivo program.cs. Ponen esas cosas en
el contenedor y luego en
cualquier lugar de mi aplicación
puedo acceder a ellas
desde el contenedor. Así que literalmente cargó todo, Todo desde
este
archivo de configuración de aplicación en ese contenedor. Y estoy viendo que
quiero acceder a ese archivo, que luego se obstruye a este tipo llamado configuración
Uyghur. Necesito una variable local
que pueda usar mientras que en esta página para acceder
son como una copia. Entonces lo que voy
a hacer es sólo decir conducto de
control después de
ponerlo en el constructor. Y luego fui a decir crear y asignar configuración de campo, y eso automáticamente hace ese proceso de inyección por mí. Por lo que ahora tengo esta versión local sólo para que podamos
verlas de manera diferente. Voy a llamar a
éste un subrayado. Y tiendo a hacer eso
con mis campos en la configuración de partituras y puntos de
Control para cambiar el nombre
en todas partes, por lo que se deshace de ese error. Ahora que tenemos este objeto de
configuración inyectado uno e inicializado
y accesible a la página. Ahora puedo decir que mi mensaje debe ser
igual a configuración. ¿ Está bien? El objeto de configuración me
permite ver, dame la clave lo que quieres acceder
para que recuerden que acabamos discutir
par clave-valor es cuál es la clave que quería
acceder al mensaje. Voy a ver
la clave es mensaje. Recuerda de IRA,
Básicamente es una matriz. Este archivo se convierte
básicamente en una matriz a la que ahora puedo acceder usando la clave
como subíndice. Una vez que hago eso, ahora
tengo una nueva variable llamada mensaje que es accesible
a mi página de índice. Así que puedo debajo del encabezamiento, poner tal vez unas etiquetas h4. Y luego solo
vamos a
separarlos con una etiqueta de RRHH. Se pone un poco de fantasía con él. Y fui a decir,
firmaría modelo dot. Y luego recuerda
que una vez que digo model.py tienen acceso a todas
las propiedades que están
dentro de la clase modelo, puede acceder al mensaje. Ningún mensaje no es sólo algo que escribimos
y pusimos en una variable. El mensaje está afrontando todo
el camino desde el malestar. ¿ Ves hasta dónde
estamos lo que está trastocando? Tiene el valor y el
par de claves para el mensaje. Y luego en la página, cargue. Estoy viendo cuando
estás cargando esta página, quiero obtener una copia de este objeto de la dependencia
o del contenedor del COI. Y estoy creando
mi copia localmente. Y luego sobre la marcha puedo ver dónde se está cargando la
página, ir a esa copia local del archivo de configuración de
la aplicación, consígueme el valor que
tiene el mensaje clave. Cuando hago todo eso, puedo hacer una construcción. Y todavía tengo mi página de la depuración anterior y lo
ves sólo actualizaciones para mí? No. Estoy viendo ese
mensaje viniendo desde el archivo de configuración de la aplicación. Eso es básicamente todo
Dependency Injection funciona a medida que crece la aplicación. Vamos a ver
definitivamente más de eso. Pero al menos esto es
un bonito poco esencial de cómo en realidad se puede acceder a datos de otras partes de la aplicación y aún así conseguir que se muestren en la página. Y tus usuarios nunca
serían más sabios en cuanto a dónde vienen estos
datos, ya sea una base de datos o se trata de una variable
en segundo plano. Pero estamos en control por lo
que sabemos cómo hacerlo dinámico. Los usuarios solo viendo
lo que parece
ser una página muy estática,
cargarla a ellos.
6. Añadir un marco de entidad: Hasta ahora hemos estado
viendo algunos de
los conceptos básicos de cómo podemos conseguir páginas de
Razor muestren fechas
dinámicas vienen
de nuestro código C-Sharp. La realidad, sin embargo, es
que nosotros, en nuestro escenario, realmente no
vamos
a estar codificando duro este
tipo de valores y poniendo en variables
y mostrando, sobre todo dado el tipo de
aplicación que estamos edificio, que es una
aplicación de reserva de autos donde vas a necesitar lista de tarjetas que
puede demostrarse cambiar. Entra a la empresa un auto nuevo, uno se retira, etcétera donde fuimos después de
gestionar la reserva. Entonces lo que tenemos que hacer es encontrar una forma muy dinámica de
almacenar realmente este tipo de datos. Entonces necesitamos emplear
los servicios de Entity Framework para
que podamos uno, crear la base de datos para
interactuar con la base de datos, y tres, seguir
construyendo sobre la base de datos. Lo que vamos a estar
haciendo antes de
meternos en alguna de las complicaciones
es engendrar, lo
que necesitamos almacenar, lo vamos a hacer relativamente simple, pero es
bastante complicado que podamos conseguir buena idea de lo que hay
que cubrir en un escenario
general. Lo que queremos hacer es
emplear a la S en sólido, que es separación de preocupaciones. Y el principio
detrás de eso es uno, un método o un archivo
nunca debe tener más de
una responsabilidad. Por eso es bueno que para cada página haya un archivo de código
dedicado. Entonces toda la responsabilidad de este archivo de código es para esa página. Lo que vamos a
hacer es quitarlo solo archivos y lo vamos
a aplicar a proyectos. Ahora que estamos
pensando en las interacciones de la base de datos, lo que tenemos que hacer es
crear otro proyecto que va a hospedar o wholes más bien todos nuestros objetos relacionados con la
base de datos. Solo voy a
minimizar o colapsar la reserva del auto y
fui directamente a la solución. Haga clic en Agregar. Y voy a
crear un nuevo proyecto. De este listado de proyectos, vamos a elegir
una biblioteca de clases. Entonces si no lo tienes
en el reciente proyecto estimula, siempre
puedes buscar. Lo que queremos es una biblioteca de clases
C-Sharp. Puedes seguir adelante y seleccionar
eso y estamos llamando a esta reserva actual
hasta punto Theta. Entonces el nombre va
a significar que este es el proyecto de datos. Hit Next, y
queremos mantenerlo como un proyecto dotnet F5 y crear una librerías de clase de versión muy
despojada de la obligación C-sharp son dos proyectos C-sharp a los
que se solían. Porque se puede ver que
este proyecto acaba de decir que archivo
CSV y el único clasificador, casi
parece una aplicación de consola y los
expositores conocen program.cs. Y si incluso miras en
el archivo del proyecto real, verás que todas las lágrimas son solo el marco objetivo. Si vuelves a tu consola, aplicaciones de C-sharp, notarías que también tienen una instrucción de ejecución para hacerle saber que se trata de
un archivo ejecutable. Lo que vamos
a necesitar hacer aquí es eliminar la primera clase, es definir algunas clases. Entonces nuestro, lo que estamos haciendo
es crear entidades, que realmente sólo podría
pedir archivos que se
convertirán en tablas de
base de datos. Entonces lo que sea, y
ya miramos OOP, sea cual sea que
nuestras propiedades de los datos que
quisiéramos almacenar. Estamos creando nuestra clase
para representar eso,
que más adelante en realidad nos
convertiremos en una tabla
a través de la API es que Entity Framework
nos permite por ahora solo queríamos entender cómo
diseñamos el modelo de dominio. Por lo que nuestro primero me dejó modelo, desde que
empezamos con los autos, serán cuatro cartas. Por lo que queremos una mesa
para almacenar los autos. ¿ Cuáles son las propiedades de los autos que necesitamos para almacenar? Bueno, en general,
eso podría diferir en
función de las necesidades empresariales,
los diferentes escenarios. Así que sólo voy a
basarlo fuera de mi escenario. Podrías hacer un
poco más o
financiarlo necesita hacer un
poco menos que yo. Pero mientras comprendan el alcance general de lo que
estamos tratando de lograr, entonces eso no es problema. Lo que tenemos que hacer es crear nuestra primera lección haciendo clic derecho en
el proyecto de datos, estoy agregando una clase y lo
voy a llamar símbolo de coche. Dentro de coche. Vamos a hacer pública
esta clase. Y luego defendemos
las propiedades. El primer inmueble de
cualquier tabla de base de datos. Si aún no has hecho
bases de datos, no te preocupes por mí esto
lo más amable posible. Si estás familiarizado
con las bases de datos, sabrás que el
siempre empieza con una clave primaria que
es auto-incrementando. Si está familiarizado con
el uso de SQL Server o así sucesivamente. Sabes que tienes que
pasar por unos pasos, tienes que sentarte y restricción de
identidad, también
tienes que hacerle saber lo más incrementos
IN1 y así sucesivamente. Con Entity Framework
o en el diseño una entidad que
sabemos que vamos a
utilizar Entity
Framework para manejar. Todo lo que realmente necesitas
hacer es llamarlo ID. Simplemente haciendo esto en diferentes donde
sabremos que, vale, esta es la clave primaria y debe ser
auto-incrementándose. Eso es todo. Por lo que siempre tienen la
clave principal para cada, la mayoría, si no todas las entidades, el 90% de sus entidades
siempre debe tener un valor de
clave primaria llamado ID. Si no quieres llamarlo ID, entonces hay otras cosas que
podrías tener que hacer. Usando Entity Framework para que reconozca como clave primaria. Pero entre llamarlo ID
o ID de coche o identificador de nombre de tabla, esos dos garantizarán que Entity Framework Core fue
visto como la clave principal. Tenemos una identificación,
¿qué necesitamos? Voy a decir
pública int año, tal vez el año del
vehículo sea importante, también. Ir a almacenar el año. Y lo siguiente
que voy a almacenar es el nombre de la cuerda,
nombre del vehículo,
Toyota Yaris, etcétera sólo
voy a mantenerlo simple y eso
siempre está tirando una pelota. El auto habría
creado nuestra primera entidad. Ahora lo siguiente que
necesitamos para que Entity Framework reconozca que esta clase debe ser una tabla, se llama contexto DB. Entonces DB abreviatura de contexto de
base de datos, lo que significa que estoy mirando todos los recursos
en la base de datos, y los reconozco como tales. Vamos a estar
configurando el contexto DB. No vamos a
estar conectando ni creando ninguna base de datos por el momento. Sólo estamos estableciendo
las bases, ¿verdad? No. Voy a
hacer clic derecho una vez más y agregar otro archivo, nuevo elemento o clase más bien. Y voy a llamar a
esta reserva de un auto. Db contexto, niacina, nombre
fácil de recordar. Carb mirando hacia arriba contextos DVI, sólo otro archivo de clase. Ahora el contexto DB va
a ser una vez más público. Y va a heredar
de una clase base que nos da Entity Framework
llamado contexto DB. Con sólo escribir el contexto DB. Y si le das a Visual
Studio unos segundos,
te darás cuenta, de acuerdo,
maravillas y herramienta de libro de errores, para poder utilizar
los contextos DVI, necesitas instalar un paquete
llamado marco NTD. Por lo que tienes Entidad Marco y trabajo anti diferente Corte. Estamos utilizando dotnet Core, por lo que tenemos que usar
Entity Framework Core, que es el último y más
grande de Entity Framework. Ahora lo genial es que
necesitamos usar un gestor de paquetes. Entonces, en lugar de que tengamos que
irnos y encontrar las cosas manualmente, Visual Studio viene con un gestor de paquetes
llamado New get. Tenemos dos opciones.
Podemos permitir que simplemente siga adelante y lo encuentre
para nosotros e instalarlo. O podríamos ir manualmente, hacer clic derecho y presionar
Administrar paquetes NuGet. Por lo que es bueno entender
todas tus opciones porque el desarrollador que lo sabe necesita Entity Framework
probablemente comenzaría aquí. Probablemente
sólo irías a NuGet, ir a los bros.
Y luego vería todos los paquetes
disponibles para él. Y entonces realmente
vería que tienes Microsoft dot Entity Framework
Core dot SQL Server. Y ahí está la
que se anunciaba para decir que tengo un montón
de otros, pero no vamos
a preocuparnos por
los que no necesitas. Así que en realidad, vamos a
estar usando bases de datos de SQL Server en diferentes núcleos de trabajo
es en realidad de código abierto y disponible para la mayoría de los motores de
bases de datos. En MySQL, postgres
SQL secuela luz, todos ellos son diferentes motores de
base de datos o proveedores. En el marco proporciona
API que le
permiten usar C-sharp para
hablar con cualquier puerta única. No obstante, si nosotros, ya que
estamos utilizando SQL Server, sólo
podemos seguir adelante
e instalar el en diferente trabajo
core dot SQL Server, que nos dará las API del servidor
SQL
así como la biblioteca base
para Entity Framework Core. Así que sólo voy a usar
NuGet gestor de paquetes. Y todo lo que tengo que hacer es
golpear esta flecha hacia abajo. Podemos elegir versión. Vemos que esta es la
última versión estable. No es necesario modificar eso. Golpea Instalar,
darte unos segundos. Podrías obtener
licencias y acuerdos pronunciables. Y como esos co-morbosos, basta con hacer clic en Aceptar y aceptar y
denotar el tiempo que está instalado. Y cuando volvamos
al proyecto CS, verá que se agrega un
grupo de artículos donde el paquete hace referencia
que se pone. Eso está bien.
Podemos dejar que lo
dejemos hacer lo suyo
en el fondo. Pero ahora cuando vamos alrededor de dos contextos de
dB y control, vemos que tenemos la capacidad de simplemente
agregar el espacio de nombres. Esa fue nuestra primera
prueba de cómo podemos usar NuGet package manager para agregar bibliotecas que faltan
inherentemente. Adelante en la declaración de uso. Ahora tenemos el contexto DB. Para que podamos dejar que el contexto DB sepa cuáles deben ser
las tablas. Tenemos que sumar al público DB sit. Entonces le decimos crea un Db,
Db ciudades Entity Framework. Habla por una mesa. El contexto representa la base de datos, conjuntos
BB representa una tabla. Tenemos que proporcionar el modelo que
deben basarse estas tablas. Bueno, hemos creado nuestro
modelo en forma de auto. Alguien que diga base de datos. Tendrás una mesa
en coche modelado. Y debes llamarlo autos cuando se crea en la base de datos
real. Así que veamos
eso otra vez. Toda esta clase
representa nuestra base de datos en todos los activos que
estarán ahí
para ver las tablas, procedimientos
almacenados, etc. Una vez que queremos agregar una tabla, queremos la mitad para crear el modelo que debe seguir
la tabla. Entonces en el caso del auto, le
dimos las propiedades que sabemos hacer la clase por no. Esto es realmente solo mostrar
cómo se ve nuestra clase como una tabla en términos de desarrollo de
bases de datos. Acabamos de crear una clase
con todas las propiedades, todos los campos que conocemos nuestra o tabla necesita para
tener los tipos de datos. Y luego le estamos diciendo al contexto de la
base de datos que necesito una nueva mesa o un
conjunto DV de tipo auto. Y quería llamar a autos. Cuando volvamos, lo que
vamos a hacer es configurar
mi agresión donde en realidad le decimos uno, generar código que va a crear la base de datos y vamos a
evaluar cómo eso mira y hacia nosotros realmente lo haremos esa base de datos y
ver que todo esto va a funcionar en la forma en que
estamos hablando de ella. No.
7. Añadir base de datos a Proyecto: Bienvenidos de vuelta chicos. Entonces
ahora vamos a estar sentados o base de datos real. Ya configuramos nuestro contexto, que básicamente representa una
conexión a la base de datos. Ya creamos al
menos una entidad o una tabla para esa base de datos. No, necesitamos una vez arriba lo que llamamos cadena de conexión. Y luego para crear lo que
llamamos migración, que sería el conjunto
de instrucciones que podría usar
Entity Framework para informar cómo va a ir sobre la
creación de la tabla y la base de datos y
cualquier otros activos que deben
crearse en consecuencia. Subimos a nuestra
configuración de aplicaciones desde nuestra reserva de autos. Y lo que tenemos que hacer aquí
es agregar nuestra cadena de conexión. Ahora la sintaxis para
un flujo clínico se ve algo así, y lo acabo de agregar
justo encima del registro. Entonces recuerda que todo esto
es un gran objeto JSON. Estoy agregando una nueva clave
llamada cadenas de conexión. Y luego esa clave tiene un valor de objeto que toma
otro par de valores clave, conexión
predeterminada, y
luego este es el valor. Así que vamos a pasar por
lo que tiene este valor. Este valor tiene un servidor
y el nombre del servidor
es más o menos el nombre de la máquina
o el nombre de la instancia de
base de datos. Si no estás tan familiarizado
con las bases de datos, eso está bien. Contamos con un proveedor de
base de datos incorporado con Visual Studio
llamado Local DB, MS Sql base de datos local, siempre se
puede llegar a
estas bases de datos yendo al Explorador de
Objetos de SQL Server. Si no quieres
tenerlo de un lado como yo, siempre
pueden ir a View. Y luego puedes buscar Explorador de objetos de
SQL Server. Entonces esto te da acceso
instantáneo a esa instancia de base de datos
y puedes simplemente
desplegable y es local DB slash
MS SQL local DB en el B2C, todos esos servidores de bases de datos
es igual a Debian local, escríbelo exactamente cómo lo ves. Paréntesis abierto,
DB local, paréntesis de cierre. El doble slash es porque
necesitamos escapar de la barra. Si tenemos una sesión,
se obtiene ese error. Necesitamos tener esa
barra doble en el contexto de este archivo y MS SQL DB local. Entonces tenemos un punto
y coma y luego indicamos la base de datos es igual a auto
reservando arriba en la puntuación db. Ahora, una vez más, aún no hemos
creado esta base de datos, pero sabemos cómo queremos que se llame
la base de datos, por lo que le estamos haciendo
saber en ese momento. Más adelante
verás que tienes conexión de
confianza es igual a true y múltiples conjuntos de
resultados activos es igual a true. Por lo que se trata de
entidades relacionadas con la seguridad para la usabilidad. solo puedas seguir adelante
y replicar todo eso. Ahora después de haber volteado
en nuestra cadena de conexión, necesitamos dejar que la aplicación
o que al inicio estés usando esta
cadena de conexión para la base de datos. Todavía en nuestra app web, vamos a jumbo
a la startup. Entonces en los servicios de configuración, vamos a registrar
nuestro hilo de contextos DB. Entonces fui a decir servicios
que agregan contexto DB. Y luego pongo en
nombre de los contextos DVI. Y como estoy haciendo esto, estoy mirando a través y
viendo que tengo un nombre aquí y otro
nombre de este lado. Entonces en realidad esto es lo
que quería que me llamaran. Lo llamé Libro de autos Up
DB context en error. Fui a actualizarlo, ¿verdad? Ningún carburador busca
el contexto DB del nombre de archivo y luego actualiza
el nombre de la clase en consecuencia. Muy bien, entonces ahora
que se hace ese refactor, me siento un poco mejor y
puedo volver aquí. Entonces los servicios dot BID, context, y la forma en que he
escrito corchetes con el nombre del contexto DB, y luego tenemos las opciones. Entonces obviamente esto realmente no está registrado lo que estamos tratando de
hacer, de ahí las líneas rojas. Entonces lo que voy a hacer es control dot. Entonces va a indicar que necesito agregar
una referencia a mi auto reserva hasta proyecto de datos. Muy bien, entonces lo tenemos en dos proyectos diferentes a diferencial
llamarán asambleas. Y en este momento el Visual Studio o la solución lo ve. Vale, estoy tratando de hacer
referencia a algo que no está en el proyecto
actual, que lo veo en
otro proyecto. Te gustaría sumar la
referencia que fui a decir que sí, por favor adelante y
añada la referencia. Una vez que haga eso, verá que este nulo cambia a
ese color que indica que sabe qué archivo es
y todo es. De acuerdo, pero entonces todavía tengo otro error que sólo
voy a controlar. Y me está diciendo que necesito
agregar una declaración de uso para Entity Framework Core para poder seguir adelante y hacer eso. No, ya no tengo más errores. Eso es agujero. Agregamos ese bit de código con las opciones
para usar SQL Server,
como dije, Entity Framework, core puede soportar múltiples motores de
bases de datos. Entonces estamos especificando que
estamos usando SQL Server aquí. Y luego estoy buscando
en la configuración. Recuerde, todo eso
se inyectó antes, el punto de configuración
get cadena de conexión. Entonces esa es una función incorporada
de la configuración. Buscaban
la conexión predeterminada. Entonces esa conexión predeterminada, y luego está
obteniendo ese valor. Entonces a cualquier cosa que puedas
haber llamado esto si no quisieras llamarlo
una conexión predeterminada para mí, quería llamar a la
carbocación hasta la conexión, sea que lo llames, solo
tenemos que conseguir eso
cadena de conexión aquí. Ahora hagamos una factura rápida solo para asegurarnos de que no
hemos roto nada para construir
fue exitoso. Vamos a seguir adelante. Por lo que el siguiente paso necesito realmente generar esta base de datos. Entonces como dije, tenemos que
hacer una migración y luego podemos realmente generar la base de datos
después de la migración. Lo que voy a hacer en
proyecto de datos una vez más, voy a saltar hacia abajo
a Administrar paquetes NuGet. Entonces vamos a buscar el paquete Entity
Framework Core dot tools. Si no lo ves enumerado aquí, listo como es para mí, siempre
puedes seguir adelante
y buscarlo. Lo veo aquí. Sólo voy a seguir adelante
e instalarlo como de costumbre. Adelante y acepta
cualquier término y condiciones y sepa
que está instalado. Permítanme simplemente darte
un trasfondo rápido cuanto a lo que estas herramientas te
permiten hacer. Si nos fijamos en la
descripción de la biblioteca, dice
que habilita a EE. UU., a
usar comandos de uso común. Tienes agregar migración, eso es
lo que estamos a punto de hacer. Ha caído la base de datos, obtener contextos DVI, cosas relacionadas con la
migración, cosas relacionadas con el
andamiaje, y migración de
scripts y
generación de comandos no relacionados. Entonces estos son todos los
comandos y estos son en realidad
comandos powershell que vamos a ejecutar usando
nuestra consola de Package Manager. Esa consola de Package Manager, si no lo estás viendo donde lo
tengo en mi
barra de tareas, una vez más, siempre
puedes ir a
Herramientas y luego obtienes empaquetada manager y una consola de
Package Manager. Muy bien, así que una vez que hagas eso, obtendrás una ventana
similar a esta, donde
te está pidiendo el comando. Lo que vamos a tener que hacer, uno es cambiar nuestro proyecto
predeterminado o un proyecto de datos porque ahí
es donde está nuestro contexto DB. Ahí es donde queremos
nuestras migraciones y todo se levanta
está relacionado con vivir. Fui a cambiar el defecto, predije un proyecto de datos. Y luego voy a decir agregar migración de
guión e incluso puede presionar Tab para
completarla por ti. Entonces voy a llamar a
esta migración inicial. Después de eso, acabo de presionar enter. Se reconstruirá el proyecto y luego estoy recibiendo este error. No problemes. Entonces
dice que mi proyecto de startup no hace referencia a esta
biblioteca, eso está bien. Este paquete es
necesario para que en el marco de
herramientas Core funcionen. Así que en realidad
nos están diciendo lo que está mal. No hay problema. Por lo que la señorita desciende la biomasa
. Vamos a arreglarlo. Vamos a hacer clic derecho
en nuestro proyecto web. Usa NuGet. Y solo estoy tratando de
mostrarte lo fácil que es conseguir estas palancas
una vez que faltan, obtiene más de lo
probable que las tenga. Entonces adelante, ve
a NuGet y luego solo
voy a pegar el nombre de la
biblioteca que decía. Una vez más, siempre se puede
simplemente buscar en el, escribiendo la barra de búsqueda. Y luego una vez que lo consiga, solo
puedo instalarlo. Cuando se hace eso. Ahora volveré a mi consola de Package Manager
y solo presionaré. Así que cuando presionas la flecha hacia arriba, te compran el
más recientemente, intentado, al menos
intento de comando. Así que sólo voy a presionar, me compren esa migración, presione Enter otra vez, y en ninguna parte
obtengo otro error. No voy a esconderme
estas detenciones porque a veces se tiende a olvidar algunos de los
pasos y es bueno ver los errores y
saber trabajar a través de ellos. Claramente estoy olvidando
algunos pasos aquí, pero eso no es problema ya el alcance del error, los
arreglaremos. Entonces éste está diciendo
que había una flecha accediendo a
los servicios de alojamiento. Y tiene que haber algún constructor que tome la configuración que
se está pasando. Entonces permítanme explicar exactamente
lo que esto está diciendo. Bach, cuando
habríamos configurado en nuestra clase startup que cada uno debería estar usando
el contexto DB. Y estaría pasando
en estas configuraciones. Entonces las opciones, más o menos
todo este objeto aquí
llamado opciones, nos
permitirían
poner en una serie de configuraciones diferentes
que queremos
ir y mantener interactuada la
base con cuando la aplicación
inicie su entidad. Es muy simple, ¿verdad? No, la única opción
aquí es que debe usar la
mezcla en cuerda. No obstante, esto no es
suficiente porque mientras estamos tendidos aplicación utilizar esta
base de datos y desconexiones, usted es este
contextos de base de datos y lineal representan la base de datos que es nuestra desconexión y cadena. Tenemos que dejar que nuestros contextos
DVI se supone que es una herramienta relativa, sean cuales sean las opciones que
estemos pasando. Volvamos a saltar a nuestro contexto DB y
crearemos un constructor. Por lo que sólo voy a leer CT OR, y presionar Tab, Tab. Y lo que tenemos que
pasar aquí
serían opciones de contexto DB. Y las
opciones de contexto DB serían una herramienta
relativa o
arranque de coche en el contexto DB. Y sólo voy
a llamarlo Opciones. Y entonces tenemos que dejar que el
bajo note que debe usar las mismas opciones base por supuesto representa o contextos DB
de la herencia. Esto está completando toda
esa jerarquía de
inyección de dependencia a la
que habría aludido. Donde cuando se
inicia la aplicación, una vez más, estamos viendo usar el
contexto DB que se encuentra en este archivo y darle
estas opciones para gobernarlo sin
lo que
acabamos de hacer con todos estos
que línea de código. El contexto DB
solo estaba sentado ahí en la-la tierra en ninguna parte
dejándote saber esto es lo que ser consciente del hecho de que
las opciones serán pasadas. Y también posible
con los contextos DB, que es la clase base que nos
da EF Core. Entonces ahora que lo hemos hecho, intentemos una vez más la migración
a puerta. Y por fin tenemos un intento de migración
exitoso. Muy bien. Ahora tenemos esta migración
inicial. Por último, como
obtendrías una nueva carpeta llamada migraciones que
puedes colapsar. Pero cada vez que
hacemos una migración o cada vez que hacemos un
cambio a la base de datos, agregando una nueva tabla
o columna o cambiando algo, tenemos que hacer una migración. El archivo de migración
generará y dirá que estos son los cambios son
estas son las cosas
que voy a hacer. Y después podemos ejecutarlos
y se mantendrá un historial. Por lo que es una buena manera de mantener un historial de todos los cambios
que se están haciendo en la base de datos. Si en algún momento hacemos un cambio y eso
no es exactamente lo queríamos no deseado para
eliminar la migración, entonces se puede ejecutar literalmente el
comando elimina la migración, que simplemente deshacer
más migración reciente. Solo un escaneo rápido
hasta lo que está diciendo
este archivo de migración. Está diciendo, bueno, tenemos una clase llamada constructor de
migración, que se está inicializando
o positon más bien. Y entonces este
constructor nos permite
crear el nombre de la tabla es autos. Así que recuerda que sea cual sea el
nombre que pongas aquí, ese es el nombre de
la mesa entrando. Por lo que está diciendo
crear una tabla con el nombre autos y las
columnas deben ser ID. Recuerda que dije
una vez que lo llames, ID sabrá automáticamente que su identidad, su clave principal. Ya está sentando todas esas restricciones en la columna
ID, cuatro filas. Y creará el año
y las columnas de nombres para nosotros. Eso está en la función. Entonces tienes un don not function, que básicamente dice, esto es lo que voy a
hacer para deshacer esto. Entonces si alguna vez hacemos ACI en lugar la base de datos y luego
el subrayado se dan cuenta, oh snap, eso no es realmente
lo que quería después de mí. Tengo que cambiar esto rápidamente. Y se quiere
deshacer la migración así
como el cambio
a la base de datos. Porque lo que sucede es que si los cambios
ya aplicados a la base de datos en este
momento este archivo
no es no existe ninguna base de datos. Este es sólo un archivo de
instrucciones para ver cuándo la base de datos
esto es lo que voy a hacer. Si ya
tienes la migración y ya la
aplicas a la base de datos, entonces tendrás que retroceder la migración antes de poder
eliminarla del historial. Este método don 't es lo que
contiene instrucciones y decir, bueno, estos son los
cambios que se hicieron. Bueno, esto es todo lo que
voy a deshacer. Entonces éste dice crear una mesa
con todas esas cosas. El Deshacer por eso
sería dejar caer la mesa. A medida que avanzamos,
veremos más de eso. Así que no te preocupes
demasiado por ello. Sé que sólo queríamos
asegurarnos de que ya
tenemos que ser excretados. Entonces el siguiente comando
que vamos a ejecutar es actualizar la base de datos. Puedes seguir adelante
y ejecutar eso. Y luego una vez que eso
ha sido exitoso, entonces podemos ir y verificar que
nuestra base de datos fue creada. Así que vuelve a tu Explorador de objetos de SQL
Server. Después expande, entra en bases de datos, y luego verá
el auto iniciando BB. En esa base de datos,
verás autos para una tabla y el
historial de migraciones de EF como tabla. Por lo que esta mesa transporta todas
las migraciones que se han
aplicado a la base de datos. Y después veremos que esta
base de datos se rellena a medida que ponemos más y
más tablas en ella.
8. Clases de datos de Scaffolding: Muy bien, entonces ahora que
hemos hecho nuestra migración, hemos creado nuestra base de datos. El siguiente
paso lógico sería
cargar la aplicación para interactuar con la base de datos. Porque, bueno, no
querrías enviar necesariamente a tus usuarios
a tu base de datos para poder gestionar el auto. No todo el mundo conocerá SQL, no todos
entenderán
cómo operar en ese entorno, por eso tenemos
interfaces de usuario, nuestras aplicaciones web,
que nos permiten realizar diferentes operaciones de una manera
más fácil de usar. Muy bien, entonces lo que
vamos a hacer es explorar
páginas completas de razón hace que sea muy, muy perfecta para nosotros
generar realmente interfaces de usuario para
interactuar con nuestra base de datos. Ya como que empezamos a construir páginas antiguas para los autos. Y lo que pasaría
es que tengamos la página de índice y
el índice suele ser la lista de autos. Y entonces tendrías el otro lo que llamar a las páginas de multitudes. Entonces C y corroer representa
crear, nuestro representa leer. Fuiste presenta actualización, y D representa eliminar crudo. Básicamente cada aplicación
que alguna vez
usarás en tu
aplicación móvil en tu nevera, sea lo que sea, todo lo que están
haciendo son operaciones crudas. Están mirando
a la vista algo. Quitarlo si no lo quieres,
cámbialo si no te gusta o va a crear otra cosa. Así corroe, ese es el
quid de cada aplicación. Entonces lo que vamos
a hacer es crear las páginas de multitud para nuestros autos. Debido a que necesitamos
poder gestionar una flota, queremos ver todos los
autos en datos BSO sobre para eliminar los
que ya no están aquí. mejor alguien cometió un error
tipográfico, quieres actualizarlo, etcétera En realidad solo
voy a eliminar esta primera página de índice
que creamos para autos. Lo que vamos a hacer es una
página de índice scuffled y nueva usando Entity Framework. Entonces lo que podemos hacer es hacer clic derecho o carpeta autos
ir a agregar una página Razor. Entonces cuando
surja este cuadro de diálogo, tenemos tres opciones. Tenemos los vacíos, un pH, que
ya miramos. Tenemos la razón por la que pgs
es el Entity Framework, por lo que usaremos ese. Por lo que este siguiente
cuadro de diálogo nos
permite decir cuál es el
nombre de la PGY1. Estamos reemplazando los bits de índice. Simplemente puedo decirle índice
entonces la plantilla preguntaría, Ok, ¿lo quieres como plantilla de
lista, editar plantilla. Por lo que en realidad podemos
andamios carga de forma o toda
la pantalla para
lo que queramos. Entonces en este caso
queremos la lista porque la página de índice, en
términos generales, tendría la lista de cualquier tipo de
datos o datos que esté mostrando. La clase más modelo
sería la siguiente. Y la clase modal
significa modelo caminado o modelo de
tabla ¿se supone que debo
usar al generar esta página? Entonces puedo decir auto. Lo haremos, lo haremos es seguir adelante y genera código para que pueda mostrar los diferentes
puntos de datos de la entidad automotriz. El contexto de datos más
por supuesto serían contextos RDB, que es donde se
irán todos los objetos de nuestra base de datos. En fin, no queremos
tener que cambiar ninguna de estas otras configuraciones y
podemos seguir adelante y golpear Agregar. Sé que me encontré con este
error que quizá no tengas, pero vamos a trabajar a
través de este árabe porque desde versiones recientes
de dotnet Core, este error ha ocurrido durante el procedimiento de andamios
y se es bueno entender al menos agujero se
puede conseguir alrededor de él. A veces es muy frustrante, pero vamos a trabajar a través de él. Por lo que hay pocas cosas
que se recomiendan. Uno, lo necesitas y sólo voy a
cancelar todo esto. Una es ir a Herramientas e
ir a paquetes NuGet,
Administrador de paquetes , lo siento,
y luego a la Configuración. Y luego vas a
limpiar todo lo que obtienes cachés. Entonces adelante y pega eso. A continuación es seguir adelante y
construir o limpiar la solución. Entonces vamos a ejecutar
una solución limpia. Y eso trajo tiene que hacer. Y luego estoy viendo que
tengo dos errores aquí. Tengo un error con respecto a las
versiones de los paquetes. Entonces eso es generalmente
lo que causa este error. Cuando los paquetes son las versiones de los paquetes
que podrías estar usando bullet necesariamente coinciden con
las versiones que el andamio o busca. No estoy seguro por qué. Esta es una de esas partes
más irritantes de ambos lo que Microsoft, el equipo de Microsoft ha estado
haciendo en los últimos tiempos. Pero solo trabajemos
a través del Alma. No, mis paquetes y
sólo voy a hacer click en el archivo del proyecto y puedo ver que mis paquetes están en 5.09. Entonces lo que voy a hacer
es dejarlos caer a 5.08. Entonces en el archivo CSV realidad
puedo simplemente
cambiar los bolsillos. Por lo que esta es otra
forma en que puedes cambiar versión
del bucket para que puedas
cambiarla aquí mismo. Pero entonces si
no estás del todo seguro de cuáles
son los números de versión, no hay problema. usaremos que
obtienes para la siguiente. Por lo que siempre
puedes bajar
al nuevo gestor de paquetes get
in para ese proyecto en sí, mira las versiones instaladas, y luego verás
qué versiones tienes. Y luego puedes
cambiar esa versión. Por lo que solo dejaré caer la versión
2.08 y luego haga clic en Actualizar. Por lo que solo se puede hacer eso para la finalización del núcleo dotnet y paquetes de
diseño para
el Entity Framework. Después de haber hecho
esa operación, veo que he
construido con éxito. Entonces voy a probar de nuevo
el andamio. Voy a hacer clic derecho
autos tenían página Razor y luego pagina usando Entity
Framework y
simplemente llenamos las mismas cosas
que acabamos de llenar. Entonces plantilla de índice es lista, clases de
modelo, auto, y
luego adelante y pulsa Agregar. Está bien, es como si fuera
otra área. Éste al menos es un
poco más informativo. Dice que hubo un ganando el
generador de código seleccionado para regañar, instalar este bolsillo en particular. Entonces bien, no hay problema. Vamos a seguir adelante y seguir las instrucciones.
En el fondo. Se puede ver eso y se
llega a realmente empezar instalar ese mismo bolsillo. Voy a probar
esto una vez más. Esta vez tenemos levantamiento. Entonces no sé que eso fue todo un ciclo de tratar de
conseguir un trabajo distinto. Una vez más, sucede cuando se
publican ciertas versiones, pero el mecanismo subyacente
en Visual Studio
no se ha actualizado para
saber que esta es la versión de la biblioteca,
se debe utilizar. Por lo que podría tener un poco de ida y
vuelta con eso. Y como dije, no
hay muchos recursos en línea para guiarte
exactamente qué hacer. Esos pasos, en términos generales, funcionarán para ti. Pero
con lo que terminamos es archivo índice. El archivo de código. En el valor del índice,
se ve que se ha generado mucho HTML para nosotros. Y en el archivo de código
verás que también se
ha creado alguna cantidad de C-sharp para nosotros. Entonces discutamos brevemente
lo que está sucediendo aquí. En el fichero índice. Empecemos con un
archivo de código porque eso está en la lista. Mira lo que estamos
viendo aquí es inyección. Entonces recuerda que hicimos forma de inyección de dependencia antes con un archivo de config porque la config tiene
algo que queríamos. No queríamos crear
una instancia completamente nueva
del archivo de configuración cada
vez que queremos algo. Así que en cambio estamos tomando
esa copia compartida que estaba registrada en la aplicación para ser
compartida entre todos. Entonces, en esencia, cuando
habríamos ido a nuestra clase de startup y
registramos contextos RDB, ya
estábamos empezando a compartirlo a través de la aplicación, convirtiéndola
así en un
candidato a inyección en cualquier lugar que queramos. Entonces esto somos nosotros inyectando
una instancia o inyectando la versión esquilada
del contexto e inicializando nuestra propia copia
privada en este fichero. Eso es
inyección de dependencia en uno-a-uno. En cualquier momento que quieras hacer inyección de
dependencia
va a verse algo como esto y puedes inyectar
múltiples cosas como a voluntad. Entonces no te limitas a una
sola cosa a la vez. Ahora que tenemos el, en el contexto
inyectado en nuestro índice, lo que estamos haciendo
aquí es crear un objeto de lista de tipo auto, por lo que es sólo una
colección de auto. Muy bien. Deberíamos llamar realmente a esto autos. Así que sólo voy a llamar a este
autos porque es una lista. Y tiendo a ponerme muy
específico con mi nomenclatura, al
menos que lo pluralizo. Si es singular,
entonces es singular. Por lo que puedes renombrarlo para
usar puntos de Control y permitir que refleje hasta que todas las demás
referencias para ti. Y entonces lo que tenemos está por conseguir. Entonces recuerda lo que discutimos
cuando se carga la página. Tenemos el encendido, vamos, llegar aquí está siendo despedido. Una vez que navegamos a
esta página de índice, se va a
llamar automáticamente a este método. Este método configura cualquier dato o lo que
necesitemos para la página, igual que hicimos
con la config e inicializando nuestras variables
en el ejemplo anterior. Entonces aquí estoy diciendo que mi lista actual de autos
debe ser igual a. Y luego vamos
a esperar los resultados de llamar a la mesa contextual dot cars y
conseguir todos los elementos. Entonces este es el clásico
Entity Framework. Entity Framework nos
da acceso a la base de datos mediante
este archivo de contexto. Cualesquiera que sean las mesas que
declaramos, porque recuerden ,
autos, ponemos autos
ahí, eso es nuestro. Eso es todo lo que está haciendo. Está diciendo contexto,
dame los autos. Y entonces la forma en que funciona
Entity Framework es que esto es lo que
llamamos método de ejecución. Está viendo lista asíncrona significa que realidad me dan todo
en la tabla como una lista. Y luego estamos
almacenando esa lista en nuestra variable local o
propiedad llamada autos. Después de todo eso se hace y se ha configurado
la página, saltemos a
nuestro HTML real. Entonces en la página HTML real, sabe que es
una inexperiencia, dio su
índice de no nombre encontró que todas esas pequeñas cosas son
porque llamamos el índice de pH. Llegamos al botón
Crear nuevo de cortesía, ¿verdad? Por lo que tenemos un enlace
al crear nuevo. Por supuesto que esa página
aún no existe, pero eso está bien. Obtenemos una tabla, y esa tabla tiene una cabecera o una sección de cabecera
con las filas de encabezado. Por lo que tenemos el encabezado de la mesa para el año por delante,
permitirnos el nombre. Entonces tenemos otra columna de
cabecera de tabla que está vacía. Y luego para cada
artículo que entró, el modelo dot car, modelar autos, esa
es nuestra lista de autos. Y luego estamos usando eso
para que cada bucle pase por cada ítem en esa lista
de autos que estamos viendo. Dame un display para el año, dame un display para el nombre. Y en esa tercera columna
que no tuvo ningún golpe, que podría haber
llamado a estas acciones, tal vez lo
que hay en esa tercera columna, dame tres enlaces
querían editar, querer eliminar, y uno, sólo ver los detalles. Y cada uno
pasará por encima de esa identificación. Recuerde, el ID de clave principal, Eso es lo que
identifica de forma única una columna en la base de datos o ese rol en
lugar de la base de datos. Y luego solo estamos
atando eso al botón que cuando hacemos clic
en Editar en cualquiera de estos roles, sepamos qué ID vamos a ver. Solo echemos un
vistazo rápido a lo que se generó para nosotros. Aquí está nuestro pH. Esta es nuestra nueva página. Vemos aquí que tenemos
algo parecido a una mesa. Si no estás familiarizado
con todas las mesas, mira en Bootstrap, entonces eso es realmente lo que
van a parecer. Pero tenemos la tabla, tenemos la columna para ti, tenemos nombre, y luego tenemos esa columna vacía la cual
va a tener los enlaces. Lo que no tenemos son datos. Sí, tenemos la página que tenemos arriba que Create New button
up top that index flood para que podamos empezar personalizar esta página
a lo que queremos. En lugar de ver índice arriba arriba, podemos decir contrata lista de autos. Eso es básicamente lo que tuvimos última vez cuando hacemos eso y vemos si lo vemos
refrescarse y cambiar. Muy bien, entonces lo
que no tenemos sería crear nuevo. No tenemos ningún dato
y tampoco tenemos ninguna de las otras páginas. Cuando hacemos clic en Crear nuevo, solo va a
recorrer porque
no hay página para crear una nueva, volvemos, lo que
vamos a hacer es crear un
repositorio de GitHub para este proyecto. Y luego podemos seguir
desarrollando nuestras características.
9. Añadir proyecto a GitHub: Muy bien chicos, Así que estamos de
vuelta y lo que vamos a hacer en esta lección
es sentarse o repositorio de GitHub
para nuestros proyectos. No, GitHub, hemos
pasado por esto. Es herramienta
o plataforma muy, muy útil para guardar una copia de nuestro proyecto uno y mantener la historia
de nuestro proyecto. También nos
permite colaborar con nuestros compañeros o amigos
en un proyecto muy fácilmente. Museo Studio, microsoft
compró GitHub hace años y desde la integración entre las
herramientas de Microsoft y GitHub, es decir visual Studio y
ya viste Visual Studio Code. Esas integraciones realmente han madurado y se han vuelto muy,
muy, muy poderosas. Entonces vamos a ver cómo
podemos enviar toda la información de nuestro proyecto usando Visual Studio a GitHub
y en mantenerlos sincronizados. Por lo que es realmente simple
hacer eso. Lo que podemos hacer es simplemente mirar en la esquina inferior derecha
de nuestro Visual Studio. Y veremos este
botón que dice Agregar al control fuente. Para que siga adelante y haga clic en
eso y verá obtener. Así que ponte a instalar en tu máquina automáticamente cuando se instaló
Visual Studio, si no estaba ya
instalado desde cuando hiciste este ejercicio
usando Visual Studio Code. Pero no, dirán crear un repositorio Git y
configurarán el repositorio local. Y luego también te permitirá
crear el
repositorio de GitHub fuera de la caja. Así que si no estás diciendo
No siguió adelante e inicia sesión, probablemente
te
pedirán que ingreses con tus credenciales de GitHub
este punto. Pero luego a partir de aquí, puedes indicar que quieres un repositorio privado y
eso está bien por ahora. Puedes dejarlo como privado
de realidad se dio cuenta que cuando desmarques esto a menos que
arreglen comprador a granel, no, pero no lo crearía en GitHub si no lo
hicieras privado, no enteramente seguro por qué, pero siempre se puede
volver atrás y
cambiarlo a público si así lo desea. Lo dejamos como privado. No tenemos que poner en una
descripción ni nada más. Y nos están diciendo cuál será
el tweet de URL. Para que puedas seguir adelante y hacer click, Crear y empujar y
darle unos momentos. Y no conseguí ninguna abierta indica que estaba terminada. Pero si miro en la esquina
inferior derecha, estoy viendo que
el botón para decir add ya no está ahí
en lugar de camino centímetro, me está diciendo que
tengo una rama maestra. Va a ser lo que
llamamos el control remoto. Recuerda, habíamos
configurado ese remoto, que básicamente tiene ese enlace
al repositorio remoto. Tiene
cambios pendientes y compromiso que podrían estar en empujado
saber en recursos. Verás que todos los archivos
del hub null
del Explorador de soluciones, pequeños candados, estos lotes de botones indican que la versión que
está en tu máquina no
ha cambiado desde la
última actualización de la servidor. Entonces si entro y encuentro con algún ajuste y solo
haré un ligero ajuste
a este expediente. Entonces verás que se
deshace de esta garrapata roja. Significa que sí, este archivo
ha sido modificado y tenemos otro panel
llamado buenos cambios. Si no es donde
está en mi pantalla para
ti, siempre puedes ir a View y
verás buenos cambios. Muy bien, así que una vez
que abras conseguir cambios, te mostrará
los archivos que se cambien y esperando
estar comprometidos. Por lo que tiene su mensaje de confirmación, por lo que sí dice archivo de índice
modificado. Entonces la forma más fácil de hacer
esto sería comprometerse todo y ver lo que esto
hace es empujar y tirar. Enviará sobre tus
cambios y pullover algún nuevo cambio que
pueda haber ahí? No. Hay
situaciones en las que podrías
terminar en conflicto con
tu colega, lo que significa que hiciste un cambio
a esta página de índice. Él o ella también hizo un
cambio a esta página de índice. Y luego uno de ustedes se registró
antes que el otro. Entonces cuando estás revisando tu versión modificada
de la anterior, GitHub se está dando cuenta de
que la versión que tiene
es diferente a la
versión que te dio por última vez. Y entonces eso
causaría un conflicto. En ese punto, tendrás que hacer alguna gestión
y resolución de conflictos. Podemos discutir que más
adelante a medida que crece un proyecto. Pero retinal esto,
sólo manténgalo
lo suficientemente simple para saber que
podemos crear o repositorio para
cambios sincronizar y cuando hagamos compromisos
y verás que
lo va a comprometer
localmente y luego sincroniza los commits
locales con un GitHub commits derribar
automáticamente cualquier cosa que no tengas
que esté actualmente en GitHub. Entrada real. Eso es lo fácil que es
codificar como grupo. Así que cada uno de ustedes podría iniciar sesión
fácilmente en este
proyecto en GitHub. Te voy a mostrar
a través de Colón Maya. Entonces aquí está el carbo
King up que se acaba de crear hace un minuto. Ahí está el pollo que
acabo de hacer archivo de índice modificado. ¿ Verdad? Nadie es privado y dos de ellos la única persona. Entonces si quería Bueno, mantenerlo en privado
pero compártelo, entonces eso es tan fácil
como
ir a la configuración, entra en Administrar acceso. Podrían pedirte que
confirmes quién eres. Y luego después
de confirmar quién eres, entonces puedes invitar a
colaboradores. Invitar a colaboradores
es tan fácil como escribir nombre de la persona. Así que tengo otro, estoy tratando de defender
mi otro YouTube, un cono para poder simplemente
demostrar cómo se ve eso. Pero en realidad puedes
simplemente buscar el nombre de usuario de ese arte de ráfaga. Solo estaba lidiando con nombres de usuario
aleatorios. Simplemente puede encontrar el
nombre de usuario de otra persona, seguir adelante y agregar. Y entonces
aceptarían la invitación, y luego podrían también empujar y
tirar del proyecto en orden,
digamos a tirar del proyecto en orden, la nueva
persona en el equipo, o incluso si perdiste tu código, veamos, tu máquina se estrelló. Necesito perder su proyecto local y necesitas
recuperarlo de GitHub. El mismo trámite
que alguien que se acaba de sumar
al proyecto y necesitan una copia
local para empezar a trabajar. Todo lo que realmente tienes que
hacer es ir al código. Y luego se verá
abierto con Visual Studio. Una vez que hagas eso, se abrirá Visual Studio
en tu máquina. Entonces indica que puedes
clonar desde el repositorio. Entonces esta es una ubicación de repositorio que es la URL para la orilla de GitHub. Este es tu pasado local. Ahora se está mostrando rojo porque
ya tengo ese camino local. Ese es un proyecto en el que
estamos trabajando. No. Así que una vez más, si
fuera nuestra primera máquina, entonces no
tendrías este problema. O si fuera la primera vez
que estás recibiendo este proyecto, no
tendrías ese
problema con el camino. Incluso si ya
tienes el proyecto, todo lo que tienes
que hacer es cambiar tan rápido y tiraría a una carpeta diferente
si realmente quisieras una copia. Después de que signifiques dónde
querías clonar localmente, solo tienes
que hacer clic en Clonar entre
Visual Studio y GitHub. Todos los archivos de proyecto que se
han subido
hasta saber
serán descargados a
su máquina y sincronizados y luego
podrás empezar a trabajar. Entonces así es lo fácil que es para los equipos empezar a colaborar. Si quieres hacer público
todo el proyecto. Serrano es privado, es
decir si esta URL y yo tratamos de crecer
traje y simplemente
abriré una nueva ventana de incógnito. Si traté de crecer traje,
llegaré a un 404. Técnicamente no existe frente a uno de mis proyectos
públicos. Déjame simplemente encontrar uno
que yo sé que es público. Si fueras a obtener esa
URL y navegar a través de ella, entonces mostraría que cualquiera puede navegar a
repositorios públicos en GitHub. Pero una vez que es
privado, nadie puede, cuando estás trabajando
en tus serios predice los proyectos de
creación de dinero, no
quieren compartir
tu propiedad intelectual con sharp, hacerla privada. Pero entonces en el verdadero significado de código
abierto y
colaboración y cizallamiento, entonces probablemente quieras tener algunos proyectos abiertos porque
entonces eso también puede duplicarse como tu portafolio para
tus pretendientes o tus futuros empleadores Cuando
querían ver qué tipo de proyectos has
hecho y simplemente hacerte una idea general de
tus habilidades. En general, GitHub es
una herramienta maravillosa para conocer gente nueva, ya
sabes, mirando lo que otros desarrolladores podrían estar haciendo. Puedes seguir a la gente. La gente puede
seguirte mientras publicas. La gente puede iniciar
tus repositorios o hacer sus propias copias de
tu código porque tal vez
estás haciendo algo
que
alguien más está interesado en hacer y lo que estás haciendo está
medio hecho, puede ayudarles. En el verdadero significado, una vez más, están saltando a la
comunidad de código abierto para la colaboración. Eso es lo que GitHub
trae a la mesa. Así que adelante y lo que vamos a hacer es hacer
shorts o un cono. Entonces cada vez que consigamos una
pieza de funcionalidad en, estaremos sincronizándonos con el repositorio
porque una vez más, nos dará la
historia de todo. Entonces si cometemos un error y
algo deja de funcionar, siempre
podemos retroceder
a la versión anterior. Lo que no quieres
hacer es dejar demasiados cambios entre las versiones que
estás registrando.
10. Agrega crea una página de Create: Hola chicos, bienvenidos de vuelta. Entonces ahora que tenemos una idea
de cómo podemos generar el código para ver los autos
o cualquier detalle en cualquier tabla. Más o menos lo que podemos
hacer es continuar por esta línea y pescar todas las actividades
de la multitud. Así corroe una vez más
ya que estamos creando, leyendo, actualizando, y eliminando. Por lo que en este momento tenemos una de las opciones rojas en
forma del índice, pero no tenemos datos en la
base de datos. Tenemos dos opciones. Podríamos entrar en la base de datos, poner en el registro,
pero por supuesto, al darse cuenta o no
estaría haciendo eso, no
estaría alentando a
nuestros usuarios a hacer eso. Entonces en cambio, lo que
vamos a hacer es continente para pelear
con todas las páginas. Y el siguiente es la página Crear la
cual clínica los de
la base de datos permite usar la interfaz de usuario en nuestros datos y luego tenerlo
visible desde el índice. De la misma manera que
generamos el archivo de índice. Sólo vamos a ir a
hacer clic derecho en autos, añadir página Razor. Y voy a hacer otra página de resultados
con Entity Framework. Ahora, una vez más,
solo podías manchar todos estos, pero yo quería
hacerlos uno por uno para que
podamos evaluar los diferentes bits de código y sostener que todos se
juntan para darnos la funcionalidad crud
completa. Así página de Razor usando
Entity Framework, fui a agregar ese. Y esta vez
voy a hacer un Create. Estoy nombrando a la página crear. El modelo queda que lo
crea nos dará un formulario o una
clase de modelo será nuestro auto. Y podemos dejar el estrés del contexto de
datos, seguir adelante y golpear Agregar. Y genera nuestras
peleas esa página para mí. Entonces obtengo el
fondo pitch así como el archivo de código que estamos
acostumbrados a eso ahora, solo recuerda que si
te dan algún error respecto y no
poder andamiar, acabamos de pasar por esa
actividad con el índice. Entonces entre las lecciones, es posible que te hayas
inclinado a actualizar tus paquetes NuGet y luego eso probablemente provocaría alguna desconexión con una scuffle más antigua. Entonces si estás recibiendo ese error, simplemente retroceda a la versión anterior o una versión antes de la
de tu nula en. Y vuelve a intentarlo. Y a medida que arrastra y si
sigues consiguiendo el área, solo mantén en
andamios pliegues o soltando la versión del paquete NuGet
e intentando scuffled. Por lo que ahora evaluemos lo que
obtuvimos a través de esta riña, la actividad para
la página Crear. Tenemos nuestro código detrás de archivo, que siempre fueron una
clase heredando, heredando del modelo Page. Y luego tenemos nuestros
contextos siendo inyectados en. Entonces en conseguir, solo está
diciendo devolver el pH. En otras palabras, no tenemos
nada que necesitemos cargar
necesariamente para el Create, así que no tenemos que ir y Fitch ningún dato para mostrar
el formulario porque
solo van a estar mostrando
un forma vacía al usuario para que
realmente creen un registro. Entonces el inicio está vacío, no
hay nada que
volver aquí, eso está bien. También tenemos esta
propiedad llamada tarjetas. Entonces tenemos coche público y es
un objeto del tipo auto, y luego tenemos
comprando propiedad. Entonces la propiedad bancaria
aquí básicamente le dice la página Razor que en el formulario, sea cual sea la entrada que se dé para cualquier propiedad que esté
dentro de esta clase, debe verla. Una vez que se presente, entonces va
a golpear ese puesto. Cualquier cosa que esté deshuesada, se va a observar para
que cuando golpeemos el post realmente
raspe todos esos datos, haciendo coincidir datos para las
propiedades del automóvil desde el formulario. Y así podemos
procesarlo en eso on post. Aquí primero verificamos si
el modelo es válido. La validez del modelo puede ser una serie de cosas basadas en
qué datos estamos pidiendo. Por lo que en el caso de
crear un automóvil, sería absurdo a un bajo, un auto que se entrara sin
un año y con nombre OTA. O al menos tal vez el nombre
sea lo más importante. El oído podría ser opcional. Por lo que definitivamente
querríamos
asegurarnos de que al menos el nombre esté presente antes intentar enviar algo
más de dos la pieza de datos. Para que si
el estado de los modelos es válido aquí, básicamente ¿eso
comprueba para que
veamos cuáles son las reglas de
validación? ¿ Son emiten si no, simplemente recargar la página. Te voy a mostrar
en unos segundos. Sostenga que se traducirá a cada uno mostrando
lo que le pasa. Pero si no es válido, simplemente recargue la página. De lo contrario, lo que
sucederá es que
irá al contexto de la base de datos, vaya al establo del auto y
sumará el nuevo objeto de auto. Vean que esos son los
mismos objetos que dijimos Ben propiedad cuatro. Y luego después de
eso guardará los cambios. Entonces eso es todo funciona Entity
Framework. Dice uno, diciéndome qué mesa y dime
qué querías hacer. Entonces en este caso, queríamos
sumar y queremos sumar un auto. Y luego una vez estamos
incrementando los datos, es decir dónde agregar algo, eliminar algo,
actualizar algo. Una vez que estamos cambiando
algo sobre los datos, tenemos que llamar a guardar cambios. Ahora te darás cuenta de la espera. Cuando haga doble clic, espero, verás que hay este
otro título llamado fregadero. Entonces en la programación asíncrona, vas a ver
mucha de esa tarea asíncrona fuera del tipo en que
realmente resulta. Observe que el inicio es
sólo i resultado de oxígeno. Éste es resultados de acción de tarea porque es una función
asíncrona. El motivo por el que es asíncrono
es que está haciendo una
llamada a la función asíncrona al contexto. Por lo que sí tiene una versión
no asíncrona. Simplemente guarde los cambios. Pero
entonces eso requeriría que hagamos algunos cambios en nuestro
método y todas estas cosas. Pero si generó
eso para ti, siempre va
a intentar darte el código más eficiente
basado en lo que sea capaz de hacer. Entonces es por eso que estamos obteniendo
las versiones asíncronas de estos métodos después de que haya guardado los cambios y
todo está bien, entonces redireccionamos
al índice de página es incluso el
código generado sabe que debería estar buscando
una página llamada Index. Esa página de índice estaría aquí mismo en el
mismo nivel que crear. Después de
que todo esté hecho, solo redirigirá
a la lista y
verás tu recién creado
un registro en esa lista. Ahora echemos un vistazo rápido al archivo HTML que
se generó para nosotros. No es mucho, es un formulario pequeño porque
la tabla no tiene tantos registros para lamentar
que muchos campos para llenar. Lo que conseguimos, obtenemos
uno, conseguimos el auto. Si en realidad pudiéramos simplemente rediseñado
esencialmente crear coche. Esa es nuestra etiqueta H1, quita esa H cuatro. Y luego tenemos
algunos divs Bootstrap. Tenemos un div con una
clase llamada regla, y luego ahí tenemos
una clase llamada llamada MD4. Entonces eso significa que está tomando
cuatro columnas en la regla. En Bootstrap, el
sistema grid es tal que puedes crear una regla y
luego puedes tener col, dash un número lo que
tienes hasta 12. Por lo que puedes tener tantos
divs de llamada en lugar de una fila de hasta 12. Entonces podrías tener
12 unos o tres
, cuatro o cuatro tres. Muy bien, puedes mezclar tanto y simplemente no elegir
tener ninguno, correcto. Entonces si quería
formar distrito justo al otro lado de eso lo que he visto desde la sección HTML de este curso cuando
acabamos de crear el formulario, le
dimos todas las etiquetas de
formulario y así sucesivamente un estirado lo más
ancho posible, entonces no tendría que
especificar ningún col md. Para que puedas experimentar con eso. Mira la documentación para las diferentes
mediciones de columna, y podemos experimentar con eso y ver
cómo se ve eso. Pero lo más importante
es nuestra forma. Entonces en la forma
tenemos este div que dice AASB guión
resumen de validación en solo modelo. También tiene otro
modo que ve todo. Muy bien, Así que a veces
tiendo a sólo cumplir con eso todo. A veces te encanta el modelo solamente. Eso está bien. Quiero decir, verás los beneficios
de uno y no del otro, aunque es más global. Por lo que solo te
recomendaría que uses todo cuando tengas dos. Entonces le damos una clase
con tics peligro. Esta sección de la página
realmente se llena con cualquier error de validación
que estuviera presente cuando dijimos si el
estado del modelo no es válido, devuelva el pH, por lo
que eso es automático. Por lo que el estado modelo es en realidad
camiones para ver, bueno, Este es el modelo entero
y esto se está deshuesando. Cuando se ingresan datos
y en Post, se va a camiones todos
los datos que se
ingresaron aquí a través del formulario. Verás que
tienes dos entradas. Uno para mi auto dot año. No quiero poner nombre de punto para que consigamos la etiqueta,
vamos a obtener la entrada, y luego obtenemos el spun con ese mensaje de validación
siendo incorporado. Por lo que dos lugares, los mensajes de
validación se mostrarán debajo la entrada y en la parte superior
del pH en un resumen de gen. Siempre que se publica
un cheques, ¿era válido? Si no, regresamos a la página
cuando recarga esa página. Entre el resumen de validación y estos
tramos de validación, veremos todos los
textos que
indicarán por qué algo no
fue votado. Lo que voy a hacer es darle la vuelta a
esto
porque es nuestra granja. Se generó para nosotros lo
que podemos cambiarlo propio. Entonces fui a poner este
grupo de formularios por un nombre por encima del año. Esta cosa que fluye más. Es poner el nombre del auto
y poner el año. Eso es opcional en este punto. Y luego tenemos el botón
Crear debajo con la clase BTN
será diez tablero primario. Y incluso se puede extender
este sentido que btn bloque, se extiende a la derecha
a través de toda la página. Entonces tenemos nuestra lista
volver al botón Lista. Entonces si la persona llegó
tan lejos e inicia, vale, ya no quiero
crear el auto. Siempre pueden simplemente
dar vuelta a la lista, volver al índice. Debajo de todo eso hay
una sección para los guiones. Y lo que pasa es que todo
este flujo de trabajo de validación
que acabo de describir, es realmente una
combinación de nosotros agregando reglas de
validación y estoy a
punto de mostrarte
cómo funciona eso. Y algunos parciales o lo sentimos, son algunos guiones los que
se renderizan en la página. Este bit de código, esto es renderizando
async parcial para scripts de validación. Si miramos en la carpeta compartida, entonces verá que los scripts de
validación de guiones de subrayado
parciales exactos parciales. Ahí está. Y si miras en ese parcial, verás que todo lo que tiene dos etiquetas de script para
jQuery dot validar. Entonces a las bibliotecas jQuery, que vimos en orden www roots. Sólo estoy tratando de mostrarte cómo todo está
interconectado aquí. Tenemos el jQuery validar, cómo el jQuery
validar en molesta. Entonces tenemos esos, acabamos de crear un parcial o
el marco generó este parcial para nosotros que automáticamente
tiene referencias a eso. En cualquier momento se
generará un formulario para usted o incluso si crea
su propio formulario. Más adelante, estaremos
viendo cómo puedes crear tu propia granja desde
cero o tu propia página, entonces en realidad
puedes usar este bit de
código para obtener ese tipo de flujo de trabajo
de validación en todas las partes cuando
queríamos decirle qué campos son válidos o lo sentimos, se debe
validar y en contra qué reglas tenemos que pasar
al modelo real que
se está utilizando o a la entidad real. Poner estos atributos
son anotaciones de datos es tan
simple como ir por encima del campo al que desea que se aplique
la regla. Y luego usando corchetes y luego veremos requeridos. Entonces esa es nuestra primera
regla que está diciendo que en cualquier momento
se supone que los datos se ingresan contra cualquier página
que se modele fuera coche o cualquier forma modelada fuera de auto. El campo nombre es obligatorio. Ese es el paso número uno. ¿ Qué otras reglas podríamos tener? También podríamos querer decir que es longitud de cadena debe ser, y luego podemos ver una longitud
máxima de tal vez 50. Por lo que ningún nombre del automóvil debe superar los 50. Déjame poner eso a 150. Y entonces podríamos decir que si no
llega a superarse, queremos un
mensaje de error de mi nombre. Es el nombre es demasiado largo. Algo que también podemos
establecer una longitud mínima para que la persona no
pueda entrar nada con un personaje,
ya sabes, cosas así. Así que en realidad puedes simplemente ensancharlos a lo largo
justo encima del campo. Ahora, poner estas reglas en
contra de la entidad deudora, porque esta es la
entidad real que se está utilizando para generar la tabla como
vimos cuando agregamos un conjunto DB. Agregamos nuestra migración. Cuando los ponga aquí, en realidad
voy a estar
afectando la base de datos. Entonces si genero otra
migración en este punto, y sólo voy
a generar una. Hago
reglas de validación, presiona Enter. Y cuando hagas eso, recuerda
siempre cambiar el proyecto predeterminado
al proyecto de datos. Pero una vez hecho eso,
entonces se puede ver aquí
que los bienes una columna de
altar poco de sintaxis. Aquí está diciendo alterar
la columna con el nombre, nombre porque esa es
la que
acabamos de establecer las reglas anteriores. Entonces el tipo sigue siendo, el tipo es int varchar 150. Entonces antes de que fuera
en var char marks, tenga en cuenta que mientras que sentado como limitación de longitud de
cadena, va a
cambiar el tipo de datos en la base de datos para saber que incluso entonces no puede
almacenar más de 150. ¿ Está bien? No, ya no es inaudible porque ahora lo hicimos requerido. Entonces antes de que fuera cierto, no
era un azul. Podríamos haber levantado MTU. La base de datos
no tendría ningún problema. La propia base de datos con rechazarla
activamente. Si es nulo, entonces si no se proporciona nada, le dará una
cadena en blanco como valor predeterminado, pero no puede ser nula. No obstante, por el lado del cliente, ni siquiera aceptaría la cadena en blanco
porque se requiere. Entonces cuando vayamos a probar o
formarnos en la página de índice, voy a golpear Crear Nuevo
y luego tenemos nuestros formularios. Entonces por la llamada MD4, ves que sólo
se está estirando hasta cuatro. Lo que podemos hacer,
solo explora esto. Sólo voy a inspeccionar elementos que podemos
jugar con este ancho. Si hiciera eso llamado
MDA ocho por ejemplo, se estiraría
a ocho veces. Entonces, ¿de dónde vemos el EHR? Líneas que se extienden
de izquierda a derecha, eso es tan anchas como
las 12 columnas. Entonces sé que va a estar
tomando ocho de los 12. Si no especificara un ancho, entonces eso es lo que se
vería. Sería una especie de diminuta. Entonces si quisiéramos que se
extendiera completamente y entonces
podríamos decir col md. Así que sólo voy a hacer
eso aquí, es igual a llamadas. Entonces esta es una forma agradable y
sin fisuras de probar cómo se vería antes de
cumplir con el cambio de código. Así que en ninguna parte ver
llamado llamado dashboards. Por lo que se puede decir col
dash AMD, T12, lo que significa en una pantalla de tamaño
mediano, T corp dot size. O si solo quieres
que sea universal en cada pantalla y ocupe ese tamaño de
modo o no mathspace, solo
puedes decir que col dash T2
se llaman dash el número. Entonces aquí vemos que se está estirando en última instancia de izquierda a
derecha en la medida de lo posible. Y luego tenemos
nuestro botón Crear, que es btn block. Si acabo de tratar de
crear este punto. Ahí vamos. Estamos viendo
nuestra validación funcionando. Así que en ninguna parte obtenemos ese resumen de
validación en la parte superior y
luego estamos recibiendo los mensajes de validación a continuación. No, no le dijimos campo
del año que se
requería con base en nuestras reglas. Lo que voy a explicar por qué
vas a ver esto. Entonces es bueno
entender estos matices con todo el plato válido encendido y qué campos se validan
automáticamente, por así decirlo. Porque el año es un entero
y no un int anulable. Entonces por defecto, cuando
ves int en C-Sharp, significa que nunca
puede ser nulo. ¿ Está bien? Entonces nano significa vacío. Pero entonces un int
nunca puede estar vacío. Un int siempre va
a predeterminado a 0. Entonces eso significa cuando nos sometemos justamente ni
intenté someter alguno, si es modesto es válido. No fue válido porque el entero no
obtuvo un valor en absoluto. Ni siquiera consiguió el 0. En lo que se refiere,
es inválido. Entonces si hubiera puesto un 0 ahí, el
mensaje de validación desaparece. Si traté de crear, está satisfecho tanto como 0 no
es un año válido para nosotros. Ceros un valor válido en
comparación con null para un entero. Solo estoy tratando de explicar todos los diferentes tipos de
datos podrían tener su propio tipo de validación
en función de la retención. Trabajan en C-Sharp. Pero en última instancia, si
no pongo nada ahí, va a decir automáticamente solo, bueno, se requiere. Si traté de crear,
no irá más allá. Y si quieres más pruebas, solo
voy a poner
nuestros puntos de quiebre justo en esta línea donde
comprueba, ¿es válido? Hacemos clic en Crear, va
a golpear ese punto de ruptura. Bueno, no va a golpear el punto de ruptura saber debido a que la validación está observando activamente. Así que déjame seguir adelante
y crear auto. Esto está en realidad en mi viejo auto. Hermoso GAR,
adelante y pega Crear. Y como aún no hay errores de
validación activos, lo que tenemos es esta comprobación
para ver el estado del modelo es válida. Es válido. Esto está diciendo si no es
válido, entonces volver a pagado. Entonces como es válido, va a seguir adelante y
agregarlo a la base de datos. Sólo voy a
quitar este punto de ruptura, golpear F5 para dejarlo continuar. Y luego hace eso
redirigir a la página de índice, que luego ejecuta la
consulta para ver y meterme todos los autos en la
base de datos y mostrarlos. Así es como todo
está interconectado. Entonces voy a tratar
de hacer otro crear. Y sólo voy a
poner este punto de ruptura, solo toma y ver
qué está pasando. Vamos a hacer clic en
Crear y verás que ni
siquiera llega al punto de ruptura
porque del lado del cliente se está negando activamente porque las
reglas de validación en realidad están configuradas para el campos basados
en las reglas que nos sentamos. Si resalta o inspeccionamos
el cuadro de texto para el nombre, vemos aquí que tenemos
datos Val es igual a true. Por lo que todos estos son
generados por el JavaScript. Entonces entre nuestras reglas que
configuramos en C-Sharp y las bibliotecas JavaScript
en el cliente dijeron que todos estos atributos
se agregaron al text-box. Entonces los datos Val
es igual a verdadero significa
que se supone que debo hacer
validación de datos en este campo. Los datos de longitud. Eso significa que el error
basado en la longitud, es el mensaje de error
que habíamos escrito. El máximo es de 150. Entonces todas las pequeñas
reglas que habíamos establecido, verás siendo aplicadas en los foros
de atributos aquí. Y no teníamos
este código extra. Y si
miras hacia atrás nuestro archivo HTML, sigue siendo el mismo isquio. No lo escribimos y no ha modificado el propio archivo. Todo esto se está haciendo sobre la marcha cada vez que se cargará la
página web. Que hemos hecho, todo el, lo que vamos a
hacer es sólo actualizar la base de datos porque acaba de
crear una nueva migración. Y eso es algo
que vamos a estar haciendo mucho cada vez que
hagas un cambio a una
de las clases de entidad, una, haces una migración donde documentará qué
cambio tiene que suceder. Y debes quitar
la migración, qué engaña y hay que
deshacer o cambia. Y luego después de hacer
la migración, volvemos y
decimos actualizar la base de datos. Por lo que en realidad puedes usar tab. Si escribe algunos de
ustedes para hacer es presionar Tab para terminar el resto de la
misma actualizar la base de datos. Y si todo va bien,
ya verás hecho. Ahora, hay momentos en los
que puede recibir errores. A lo mejor algunos de los
cambios que quieres
aplicar pueden entrar en conflicto con algunos de los datos
que ya están ahí. A veces eso sucede,
pero como dije, cada vez que surjan estos errores, vamos a trabajar a través de
ellos juntos. Para que puedas tener una buena idea de cómo solucionar
algo. ¿ Se debe subir? Cuando volvamos,
seguiremos con nuestra aventura de código. Por lo que ahora tenemos el Crear, tenemos la r, Así que tenemos la c, tenemos la R en
forma de esta página de índice. Y luego podemos
hacer la edición a continuación.
11. Agrega una página de aviación: Muy bien, bienvenidos de vuelta chicos. Así que ahora estamos en
nuestra nueva actividad, que es
configurar la página de edición. Por lo que las ediciones serían
la actualización bruta de la ONU. El tiempo que vamos
a editar algo, básicamente
estás haciendo
actualizaciones a los datos existentes. Por lo que seguir por
la misma vena de andamios
se acertadamente autos, autos carpeta, seguir adelante y calentar. Hay una página, una página que
utiliza Entity Framework. Y entonces éste
lo llamaremos edit. Mi justificación para usar
estos nombres de página. Por qué dije ediciones en lugar de actualizar o dije índice
en lugar de lista. Notarás que
en la página de índice, esos son los nombres de las páginas. Se espera
ver que dicho,
sin embargo, si esos no
son los nombres de página que quieres, siempre
puedes cambiarlos. Entonces si quisiera que esto dijera actualización en lugar de editar,
entonces eso estará bien. Voy a llamarlo actualizaciones. Fui a cambiar esta plantilla de Create para editar así obtenemos ese formulario de edición y
verás la diferencia entre las plantillas de crear y editar. La clase modal sigue siendo coche, contexto de
datos significa el mismo anuncio. Entonces obtenemos nuestras dos quintas partes. Por lo que obtenemos actualizaciones, CSEA, esmalte, y el archivo de modelo detrás de él, nieve, esto es actualización. Pero si vuelvo
a la página de índice, el código que se
generó está
buscando la página
ASP va a querer ver
es editar y no actualizar. Así que está bien, bien. Simplemente puedo hacerlo nulo Cada
mirada adelante para actualizar la página. También puedo cambiar
el texto si quiero, porque esto es
sólo una etiqueta de anclaje. ¿ Qué se necesita que
quiera que se muestre? Puedo decir que quiero
mostrar actualización, pero la dejaré en editar
porque la actualización no es tan
amigable con el usuario o los usuarios
realmente no se relacionan con la
actualización de palabras como lo iban a editar. Lo que usted presenta a los
usuarios. Siempre importante. Pero puedes tener un poco
de libertad con tus nombres de tono. Pero eso es todo lo que quería demostrar por no ediciones de Nimitz, poner nombrarlo, actualizar. Quieres tener cuidado si
vas en contra de la norma, entonces tienes que
cumplir cada vez más para facilitar tu
implementación. No obstante, de lo contrario, si
vas con las normas, tu necesidad de personalización
se reduce en gran medida. Volvamos
a nuestro archivo de código para la actualización del archivo CSS HTML. Entonces es más o menos lo
mismo uno donde inyectar también el contexto de la
base de datos, tenemos el mismo tipo
de propiedad de banda, propiedad que
vimos en el Create. Entonces vamos a
tener el primero. Vamos a tener campos
para el auto en el foro. Necesitábamos estar
atentos a los cambios a los valores de la propiedad para que podamos
procesarlos en post. Aviso, sin embargo,
que están en GitHub tiene mucha más acción pasando, entonces nos habremos
acostumbrado,
y vamos a caminar a través de
lo que está pasando aquí. Uno, notarías
que esto es asíncrono, por lo que lo hicieron acrecentar esta vez, y tiene un
parámetro para int id Ahora nota que este int tiene
un signo de interrogación al lado de él. Por lo que anteriormente
habría mencionado ins
neoliberales versus int. Entonces int significa
que no es opcional, tiene
que ser al menos 0. No obstante, hay
momentos en que es posible que
necesite un valor nulo en la variable que se
supone que es un int. En esta situación,
básicamente están diciendo que alguien puede intentar navegar por la
página de actualización sin proporcionar un ID. Muy bien, entonces eso significa
que cuando llegue aquí, ese valor de ID sería nulo. Lo primero que
hace es comprobar si el valor id es nulo, luego volver no encontrado porque no
puedo encontrar nada. No significa nada. Y si
me estás diciendo que quieres editar un registro sin nada como su ID. Y ya
pasamos por hold que ID es ese identificador único
en la base de datos? Es una clave primaria. Eso es lo que es el ID. Si me dices que
quieres editar un ícono de registro, acude a la idea del
registro que te voy a decir si no es teléfono y no lo encuentro bien. Así que cada vez que obtenemos esas
404 páginas en cualquier sitio web, básicamente lo que esto
es todo lo que están haciendo, están regresando, no telefoneados. Muy bien. Si no se proporciona ninguna identificación, entonces no puedo encontrar nada. Eso es más o menos lo que
estamos viendo al usuario. No obstante, si va más allá de esto, entonces podemos suponer que
el ID tiene un valor. Por lo que tratamos de encontrar ese
valor en la base de datos. Esto es básicamente decir, ir al contexto, ir al establo del auto. Así que ve a luego disculparse, ve al establo del auto y consígueme el primer
registro o por defecto donde el ID coincide con el valor
que está entrando. Esto es lo que
llamamos expresión lambda. Muy bien, así que pongas demasiado. M podría haber sido cualquier Tolkien, esta podría haber sido la
palabra registro igual w, q igual W2 palabra cachorro. M no lo es, no es nada
manifiestamente especial. No obstante, m
seguido de esta flecha, que solo voy a
llamar la flecha Lambda, convierte en una expresión lambda, lo que significa que
básicamente estás definiendo función como capacidades dentro
de uno declaración. Muy bien, Así que esa es
una expresión lambda. Entonces podría haber usado un elixir degenerado m, eso está bien. Pero podría haber usado
cualquier letra, cualquier palabra, cualquier Tolkien y
dicho flecha Tolkien. Entonces el Tolkien
básicamente representa cada registro en la base de datos. Entonces en lugar de que yo
tener que usar como un for-loop, porque ya establecimos
no autos es como una lista de tarjetas o la lista de
registros en la base de datos. Ya miramos cómo
tendríamos que usar for-loops o para
cada bucles para
pasar por lo menos para conseguir todos los registros en lugar de
decir que me traigan los autos. Y luego para cada tarjeta
que está en la base de datos, si el ID coincide, básicamente esto está haciendo toda
esa lógica que acabo de describir para nosotros. Entonces el Tolkien aquí representa cualquier registro en la base de datos. Obtenemos las propiedades
para que pueda decir m dot m dot nombre, m dot año. Entonces, si necesitaba
buscar algo, podría usar esta expresión
lambda para buscar por nombre por oído. En este caso, estamos
buscando por ID. El ID que mucho es el
valor que se está pasando a través del
intento de navegación del usuario a esta página. Puedo ver si el auto es
no porque tal vez
pasaron en ID TIN y
no hay auto con una identificación diez, eso significa que nada habría
sido volado a la base de datos. Entonces estamos diciendo que si
no se encontró nada, entonces devolvemos la página. Hay formas en que
puedas refactorizar esto, pero puedo explicar por qué
fue escrito así y por qué probablemente
querría refactoriarlo ganado. Fue escrito así porque una base de datos llamada es cara. Me gusta pensar en ellos
como algo caro. Lo haces cuando sea
necesario en absoluto. Quiero simplemente hacerlo
fuera de la pero sólo porque más o menos lo que están diciendo es que si no
se proporcionó nada, no espere. Llamó a una base de datos, verifica si se
proporcionó
algo y si no, entonces mátalo ahí mismo. La persona está perdiendo tiempo y recursos.
Mátalo ahí mismo. No desperdicies la llamada de base de datos. Después de que hacemos la llamada de la base de datos, todavía queríamos saber ¿se
llamaba ese respecto? Si no se encuentra, entonces regresamos no encontrado 404. De lo contrario devolvemos
el pH con los datos cargados online con un crear donde el
Create solo tenía el vacío o simplemente la
instanciación del auto. Entonces no había nada en la
tarjeta, esto estaba vacío. Por eso obtenemos
la forma vacía. Porque el
nombre del punto del coche estaría vacío. Coche dot año estaría vacío. Depende de nosotros llenarlo
y se llenaría e ingresaría en la
base de datos por correo. No obstante, en las
actualizaciones estaban tratando llenar esto con datos
antes de volver a la pizza, recuerda dije que
quieres poner todo dentro de las propiedades antes de
enviarlo al real apareció
antes de disputar a los usuarios. Así que al igual que con el
índice, estamos en conseguir. Seguimos adelante y corrimos la consulta. Entonces recuerda que
esto se estaba utilizando, esto se está utilizando en la propia
página, modelo dot cars. A diferencia del índice
donde no estamos, lo siento, igual que con el índice
donde llenamos las tarjetas con datos antes de volver página. Tenemos que hacer eso
para la actualización. Por lo que necesitamos encontrar el registro
y luego devolver la página. Y luego
enlazaría
automáticamente los valores existentes
provenientes de la herramienta de base de datos, los campos de entrada en
el formulario generado, que son capaces de
mirar en unos segundos. Entonces es por eso que realmente
fue escrito así. Si no hay identificación proporcionada, no desperdicies la base de datos,
llame, muerte de ejecución. De lo contrario, intenta encontrarlo. Y si no
lo encuentras, mata la ejecución, lo contrario, sigue adelante
y muestra la página. No, esto podría refactorizarse
para tener una declaración if porque estas dos
declaraciones if mientras están comprobando dos escenarios
diferentes, realmente
están haciendo lo mismo. Si queríamos una respuesta
diferente a cualquiera de ellas y tenemos dos
líneas de código para cambiar. El factor preguntándose
podría ser que, vale, arriesgamos la llamada a la base de datos. Lo intentamos para encontrar
el auto sin importar, no
obtenemos el valor. Muy bien, entonces sólo podría
decir si el auto es nulo, porque al final del día, si se pasa
nulo teoría sólo va a ver si el ID es
equivalente a nulo, lo que nunca sucedería. Entonces auto sería nulo, volvemos no encontrado. O si ese valor es 0 o
algún ID que no existe, Kyra todavía va a ser
nulo, devolver, no telefoneado. Ya ves, solo
te estoy mostrando que el código generado, pero no tengas miedo de
explorarlo y modificarlo, como puedes pensar que podría
ser más eficiente. Pero les estoy dando los dos
escenarios y explicando por qué se
estableció
un escenario de esa manera. ¿ Y cuáles son los
pros y los contras de ella? Ahora que tenemos una idea de lo que está haciendo
el inicio y
no voy a modificar esto. Lo dejaré tal y como está. No, podemos ver lo que tiene la página
HTML para mostrarnos. Entonces la página HTML va a parecer bastante
idéntica o crear. En este punto, No, estás
viendo bien hay dos los dos mismos foros literalmente
ahí para verle formas. La diferencia aquí sería
esa forma degenerada aquí. Dice auto de actualización y fui
a cambiar esto para editar auto. Saca cualquier cosa
que no necesite. El botón por defecto se
guarda en forma decretada. Se dijo crear. Muy bien, y luego
podemos una vez más solo tomar btn block y
ponerlo por aquí. Además, si no quisiéramos la
clase para ella llamada MD4, podríamos cumplir con eso llamado
MD, sea lo que sea. Solo te estoy mostrando
que los dos formularios son generalmente idénticos entre un formulario de creación y una actualización
en la mayoría de las aplicaciones web, generalmente
son idénticas. En este punto, podrías tomar
otra decisión de diseño. Podrías hacer una página
que diga tal vez upsert, actualizar e inserciones que apoyen mental emerjan hacia la
actualización e inserción. Y lo llaman absurdo. Este absurdo Pij sería más
o menos en el, ETC. ¿ Recibí una identificación en
Get ¿Me dieron una identificación? Si me dieron una identificación, traté de encontrar el auto y luego
volver a pitch. De lo contrario, solo cargue
la página vacía. De esa manera, si se
presentan datos aparecerán. Si los datos no se
presentan en la orilla hacia arriba. Y entonces podría hacer otra declaración
if aquí para ver si el ID está presente en shore un valor en el botón o mostrar el otro botón llamado
éste es un botón de actualización. Yo querría que
fuera btn-primaria, me gustaría que fuera T
sea btn peligro. Entonces es naranja.
Solo te estoy mostrando, solo, solo estoy explicando diferentes consideraciones de diseño. Todo el mundo tiene
diferentes contextos. Y así podría hacer algo
que tú estás viendo, ya sea que no sea
necesario hacerlo de esa manera. O podrías hacer algo
con un colega o un amigo tuyo y
ves que no necesitas
hacerlo de esa manera. Pero los contextos siempre deben ser el factor determinante para sus decisiones a la hora de
desarrollar una aplicación. Continuemos. No voy
a hacer esas cosas absurdas, solo te
voy a dar una idea. Pero el punto es que las
formas son casi idénticas. aplicarían las mismas reglas de validación. El buck a listar está ahí, tenemos el botón,
tenemos nuestros campos de entrada. Sólo voy a
reorganizar este. Por lo que se parece al Create en términos
del orden de los campos. Pero hay una cosa que
quería señalar y que es esta entrada para lo
oculto sí cambió esto
a todos en el último. Por lo oculto. Si vuelves a nuestro Create, no
hay oculto. Para una identificación. Este campo oculto es
absolutamente importante. Uno, es un oculto porque nuestros usuarios realmente no necesitan
conocer nuestras
claves primarias. Piénsalo. En Amazon, es posible que vea
nuestro número de producto, pero ese número rara vez es nunca. La llave paria María. Es posible que veas un número ISBN
para un libro o algo así. Ya sabes, un número de identificación
para nuestros alumnos. Pero esa rara vez es
la clave parietal. La clave primaria es
interna al sistema. No obstante, es absolutamente
necesario para el transporte por carretera. Qué pasa, porque
si no tenemos que esa clave primaria sea
cargada en este formulario, entonces siempre va a suponer que
se trata de un nuevo récord. Muy bien, así
que tenemos que por eso creo no lo tiene porque
siempre es siempre es un nuevo récord. No hay identificación cuando estás
creando algo. No obstante, cuando estás editando o actualizando todo lo que pasamos por
los ungulados, es
obvio que el
ID es muy importante. Y tenemos que recordar
el DNI a través del formulario. Para que cuando esta persona
somete la fórmula, pegamos la cabeza de nuevo al on post, ¿ves mucho más
repentinamente a bordo? Sí, hemos validado. Ya pasamos por
cómo
se ve la validación , eso está bien. Pero entonces aquí donde
decimos contextos dot
coche adjunto y cambia de
estado a modificado. Lo que realmente está pasando aquí
es que estamos viendo base de datos. Por favor empiece a llevar por carretera
este auto objeto. Por lo que habríamos conseguido aquí el disco
original del coche. Si el nombre era un
calabacín al deporte. Eso es lo que tenemos aquí. El año fue 2013,
Eso es lo que conseguimos. El DNI fue de tres. No, no escuches después de
que se haya editado, la idea nunca debe ser editada porque diferente IID significa que es un disco diferente. Entonces por eso está oculto
y no permitimos el usuario lo vea o
interrumpa con él, pero está siendo transportado por camión
en segundo plano. Ahora si lo cambié de Suzuki. En los deportes y en como, oh, no era un deporte. Déjame quitarme el deporte. Entonces lo que estamos
viendo es base de datos. Por favor empiece a
ver este registro y sepa que está modificado. En la base de datos sabrá
que está modificada o Entity Framework
sabrá que está modificada u otra
por el ID. Entonces va a suponer que
algo en él cambia. Lo único que no
debe cambiar es el ID porque ID está
presente, lo sabrá. Ok. Tengo constancia con
esa identificación, ¿verdad? No. Entonces lo que haré es guardar los cambios que se han hecho a ese registro con ese ID. En esencia, va a
terminar con dos versiones. Va a tener
el registro original que acabamos de recuperar. Y entonces va a
tener este nuevo disco o esta nueva versión
del disco COVID, pero propiedades potencialmente
diferentes. Y luego Guardar Cambios,
diremos, está bien, voy a guardar los nuevos datos
en la tabla en consecuencia. Esto, en éste, verás que tenemos
un try-catch porque esto es situación más
delicada. Es decir, ¿y si dos personas trataran de actualizar el auto? Hice clic en editar este auto. Segundos antes de
hacer clic editar este auto, ambos
tenemos este registro de
acero o
al menos quién ambos de la corriente requerida entonces hago un cambio. Lo cambié
del año 2013 a 2015 y
luego haré clic en Guardar. Pasarás bajo
el más largo bajo registro y todo tu
registro es de acero porque tenías la versión
del registro antes de
que yo lo actualizara. Al hacer clic en Actualizar, vas a intentar
guardar los cambios. Gané algo
que ya estaba actualizado desde que lo hizo clic. Eso llevaría a este tipo de error o no
sabía sobre intentar y atrapar o
manejar excepciones, explotar C-sharp, lo que estamos haciendo es
tratar de guardar los cambios, pero entonces es sólo
esbozar explícitamente esta excepción de
concurrencia de actualización de DB, que es ese mismo escenario
que acabo de mencionar. Necesitan ver eso, bueno, si el auto no existe, entonces devolver no teléfono
porque tal vez fue borrado para cuando
estoy tratando de actualizarlo. Si no piensa desde entonces,
devolver no teléfono, de lo contrario, solo lanza una excepción y error más Griswold
formas de manejar esto, pero eso es lo que dice el código que
se generó nosotros. Entonces eso no es problema. No obstante, si el juicio
fue exitoso, no
hubo nada atrapado, entonces devolvemos el discurso índice. No, esto es solo un auto método existe que básicamente simplemente
devuelve verdadero o falso. Base de datos comprobar el auto estable
si hay algún registro. Y aquí hay otra expresión
lambda. Y sólo para mostrarte que
los tolkien realmente no
importa arriba arriba es la
misma expresión lambda, pero usamos m aquí abajo. Es la misma
expresión lambda que solo usa E. Si querías volver a
compararlos, solo copia esto y
ponerlo cerca de eso. Miré el hecho de que
son el mismo código, sólo dos diferentes
lambda Tolkien. Básicamente es sólo decir: ¿Hay algún auto en la
base de datos que tenga ese DNI? En caso afirmativo, entonces bien. Si no, entonces regresa. No llamó por teléfono. Entonces si existe, eso significa que los datos siguen siendo
que estoy tratando de cambiar. Entonces arroja una excepción, o podríamos simplemente
enviar error de botón diciendo Hey, algo
salió mal. Probablemente quieras volver a intentar
esa operación. Muy bien, veamos cómo funciona esta operación de
actualización. Así que sólo voy a seguir
adelante y saltar adentro. Muy bien, así que no, veamos cómo funciona esta funcionalidad de
actualización. Cuando hago clic en Editar. Observe que va
a traer los datos. Eso no debió haber
sido un botón rojo, eso debió haber
sido btn advertencia, no ser diez Dash peligro. Permítanme solo hacer ese cambio. No hay advertencia para un botón naranja. Después de hacer ese cambio, sólo
puedo refrescar. Y ahí vamos. No, es un botón naranja. Entonces veamos cómo se ve esta operación de
edición. Aviso en la URL que
ves autos slash update, luego las cadenas de consulta. Así que recuerda cuando
hablamos de cadena de consulta llamada datos
se transmite a través de formularios. Entonces cuando usamos un GET, entonces estamos no especificamos que realmente
va a poner todos los datos y cadenas de consulta
que puedan ser peligrosas. Y mientras estamos trabajando
en un sitio web estático sin nada
particularmente peligroso que se transmita desde nuestro
formulario a cualquier lugar, estuvo bien. obstante, no
notarías que generan explícitamente formularios
con método es igual a post, porque cuando publicas los datos o cuando
envías el formulario, no quieres estar enviando datos a través de la cadena de consulta. Especialmente como
cuando se trata de tarjeta de crédito
o información personal de los usuarios. Sigue volando ese
nombre de usuario y contraseña. No quieres eso en
la cadena de consulta que hablo. Si bien es inofensivo usar
la cadena de consulta para el ID, puede
que no sea inofensivo cuando estés enviando desde el formulario. Entonces es por eso que
siempre queremos asegurarnos de que nuestras formas, nuestro método igual a publicar. No obstante, hagamos un poco de
experimentación aquí. Así que estamos hablando de ambos
el agujero se pone bien. Entonces cuando navegemos
para indexar con el ID, solo
voy a volver a poner aquí un
punto de interrupción. Sólo voy a
refrescarlo cuando llegue al punto de ruptura. Y pasamos el puntero sobre
la propiedad ID, se ve que se pasa esa identificación. Entonces eso es lo que abrió. Obtenemos ese ID que viene a través
de la cadena de consulta. Y entonces somos
capaces de determinar, está bien, Esos autos de punto
existen en nuestro sistema. Ahora mira lo que pasa cuando cambio este ID a uno
que no existe. Sólo tengo un auto
en mi identificación del sistema. No hay auto con el ID TIN. Si traté de bros
ahí, me dan diez. Muy bien. Y entonces si acabo de
hacer F5 y continuar, entonces verías
que solo está diciendo que no
se puede llamar HTTP o fluoróforo. Entonces esto es lo que
obtenemos en virtud de llamamos retorno, no telefoneado. Muy bien, por lo que eso es
básicamente sostén, eso funciona. Ahora nota una vez más que se
trata de un método on post. El método on post
es lo que va a funcionar con el formulario que está enviando
con el método es igual a post. Muy bien, así que déjame
volver a lo grabado
que tenemos Hagamos logrado. Por lo que el año fue 2215, no 2013. Eso está bien. Fui a salvar y
luego mirar eso. 2015. Recuerda que esto se está cargando desde la base de datos
cada vez que golpeas el índice, está consultando la base de datos. Lo que veas aquí
es el estado actual
del registro que
está en pocas palabras. Obra de actualización completa. No importa cuán complicado pueda verse
un sistema, cuán sofisticados sean los botones y
animaciones y así sucesivamente. Lo que estamos haciendo aquí está en la raíz de cada sistema, el sitio web con el que
interactúas, todo lo que están haciendo
es permitirte
poner datos en la base de datos a través de la reforma, modificado a través de un formulario. Míralo a través de una
página de índice o una página de detalles que vamos a mirar
en unos pocos o eliminada. Eventualmente. Eso es todo lo
que realmente está sucediendo, sin importar el sistema
que esté mirando. Cuando volvamos, veremos implementación o
eliminación de funcionalidad.
12. Añadir detalles Página de maquinilla: Muy bien, así que estamos de vuelta. Y sé que en la lección
anterior dije que trabajaríamos
en el Delete, pero tengo una sorpresa
para el Delete, vamos a hacer las cosas un poco diferente para el Eliminar. En cambio, trabajemos en
nuestro discurso de detalles. Muy bien, vamos a
saltar a nuestro código. Y creo que a estas alturas
conocemos al Drew. Vamos a pelear
o velocidad de detalle. Así que haz clic con el botón derecho en la carpeta de autos, agrega página Razor usando
Entity Framework, estamos llamando a este detalles Y la plantilla sería
la plantilla para detalles. Entonces nuestro modelo es auto y
todo lo demás queda. Y obtenemos nuestra página
para los detalles con su archivo de código correspondiente. Conocer la
página de detalles es más
o menos sólo otra página que nos ayuda a conducir a la r
de corroer que se lee. En este punto,
podría ser algo difícil ver la relevancia
de la página de detalles. Porque lo que realmente te
muestra la página de
detalles son los
detalles de algo, mientras que el índice realmente
muestra la falta de una vista previa. Entonces si tal vez nuestra mesa tuviera
20 o 50 campos diferentes, tal vez incluso diez campos, no
querrías todos los
de la lista. Pensable como un costo, una lista de clientes,
o incluso en Amazon. Cuando estás mirando
los productos en Amazon, no te
están mostrando
cada cosa sobre la proteína. Te están mostrando
el nombre, su precio, tal vez cuánto
tardaría en enviar. Pero entonces en el momento en que haces
clic en ese producto, entonces ves todo lo que
construyo un prototipo, ves todos los
tamaños y colores potenciales y de dónde es y qué
material lo hace, etcétera Así que eso es realmente para qué está diseñada la página de
detalles. En este caso, es discutible que es opcional porque auto realmente cuando tiene
dos detalles para mostrar en cualquier punto cuáles
son el oído y el nombre. Bueno, una vez más,
si fuera una mesa más grande con más detalles para mostrar, entonces no
querrías
enumerarlos todos en el
índice en ese momento. Probablemente no
querrías mostrarme ser el año del auto o
el nombre del auto. Entonces digamos que no
queríamos mostrar el año. Sólo voy a
comentar esto. Entonces cuando
miras la página de índice, solo
estás viendo
el nombre del auto. No obstante, se quiere ver el resto de los
detalles sobre el auto. Haz click en la
página de detalles donde tienen el enlace aquí y luego sabes que hemos creado la página, la tenemos cableada. Por lo que va a ir a esta página de
detalles detalles que CSS HTML. Simplemente modificaré esto
para decir detalles del auto. Deshazte de que cada Doug, hay una forma antigua
porque una vez más, solo
es leer datos, datos como un
enlace generado automáticamente para ir a Editar. Entonces aquí hay otra cosa. Está buscando,
editar fuera de la caja. Utilizamos la actualización del nombre de página. Entonces tengo que
asegurarme de cambiar eso. Entonces podemos volver a
la lista si así lo deseamos. De acuerdo, entonces, ¿qué
está haciendo realmente la página de detalles o el archivo de código? Cuenta con auto predial, no
tiene cláusula de
propiedad de Bend. No hay presente extranjero, pero sí tiene la propiedad. Y luego hace
lo mismo donde dice
Consígueme el registro con el yodo
está buscando esa identificación. Si es nulo, volver no telefoneado. No es nulo, entonces
trata de encontrar el registro. Si puedes encontrar el registro, No es teléfono, devuelve la página. Entonces esta es una especie del mismo código que vimos generado para la, para la página de edición. Muy bien, no voy a
hacer las modificaciones aquí. Estos tienen tanto a comparación del regular fuera de la caja anotado frente a nuestra pequeña modificación donde
acabamos de hacer una llamada a base de datos y
determinar si no se encuentra. Para que puedas compararlos, pero sigamos adelante y corremos. Así que sólo voy a Control F5 que
podamos ver lo nos trae
el pH de los detalles de nuestra página de índice. Si pego detalles, entonces voy a ver los detalles de la
tarjeta y me
va a dar
todos los detalles. Por lo que una vez más,
esto se genera. Puedes modificar el aspecto y la
sensación de la misma como necesites. Desde aquí puedo hacer clic en él. Y debido a que
modificé el enlace, no estoy teniendo problema
saltando a la página de edición. Puedo volver a la lista. Una vez más, toda
la navegación está estrechamente acoplada aquí porque cada enlace sabe dónde encontrar. Eso es muy, muy
importante desde cualquier pH, deberías poder
navegar a otra página. O el pH nulo debe ser de
más de dos o tres clics en
función del tamaño de un sitio web. Pero generalmente hay
una
política de gira de tres clics a la hora de
navegar entre páginas. Eso es realmente todo por los
detalles, Niza y sencillo, comparado con todo
lo que hemos
pasado con el crear y editar para ver que los
detalles son realmente sólo cargar en el
registro y mostrarnos. Se puede modificar lo que se
muestra en el índice. Una vez más, si no quieres que todos los datos en la página de índice, por
eso tenemos
la página de detalles para mostrar lo que no se
mostraba en la lista. Cuando volvamos,
vamos a mirar usando algún jQuery
con nuestro delete. Porque con nuestro delete, no
voy a crear
toda la página para el delete. Tienes dos formas de
mirarlo y
exploraremos las opciones
cuando volvamos.
13. Añade la página de eliminación de Razor: Chicos, bienvenidos de vuelta. Vamos a estar
mirando trabajar con nuestra eliminación operativa. Empecé a mencionar
que generalmente hay dos modelos que gobiernan
mantener la eliminación ocurre. Uno, se puede establecer el pitch
he hold lead, que en realidad es
igual a un discurso detallado, pero también se dobla como página de
confirmación porque
quieres permitir que el usuario vea el registro que son
capaces de eliminar y luego pregúntelos, ¿
Estás seguro que quieres eliminar? Echemos un vistazo a ese 1 primero. Eso sigue el mismo patrón
que hemos estado siguiendo. Adelante y agrega una nueva
página Razor usando Entity Framework. Llamaré a este eliminar. De la plantilla. Yo sólo elijo las
necesidades o el mismo modelo. Entonces obtenemos nuestra página generada para eliminar con su archivo de código. Por lo que una vez más, inyectando
el contexto DB, también
tenemos un botón
apropiadamente para el auto. Por lo que aquí va a ocurrir alguna
forma de forma o recolección
de datos. En Git, tenemos el mismo tipo de lógica que acabamos de
ver con la edición. En la página de detalles
donde obtenemos el ID, asegúrate de que no sea nulo, obtienes el registro y devuelvo
a pH si grabo fue encontrado. Pero luego en el post, también
va a verificar
que el ID no esté vacío. Por lo que ten en cuenta que está
buscando sólo el ID en Post. Es muy posible simplemente tomar un parámetro que corresponda con los datos que
se encuentran en la página. Así que permítanme simplemente correr
el paralelo aquí. Con nuestra operación de actualización. Dijimos comprando propiedad
en todo el auto. Aviso que no hay
parámetros en el OnPause. Eso se debe a que
todo el objeto automovilístico tenía campos presentes en el formulario. Entonces teníamos una identificación, teníamos
el nombre, teníamos el año. Entonces cuando hacemos clic en Guardar, realidad serializaría todos esos
puntos de datos que se
ingresaron y
los colocaría dentro de los autos. Entonces es por eso que enlazo propiedades, básicamente
cargando qué datos entraron al objeto, entonces podemos operar en él. Conociendo el caso de un delete, realmente no necesito saber
el nombre y el año. Realmente solo necesito
saber cuál es el ID del registro que
hay que eliminar. Entonces puedo especificar en el onPause que
solo estoy buscando el ID. Una vez más, puedo
hacer todos los cheques. Comprueba si es nulo. Quiero decir, si estoy tratando de
eliminar nada, entonces devolver no carpeta, pero de lo contrario intente encontrar el registro del auto que
necesita ser eliminado. Entonces esta vez solo vamos
a usar este hallazgo asíncrono. Entonces es algo diferente de los valores predeterminados de primer orden porque la multa estos Sing utiliza
los valores clave para que pueda
dispersarme en Id a diferencia los primeros o predeterminados que requieren una condición o
esta expresión lambda, donde esto es cierto, entonces conseguimos un auto,
mientras que el hallazgo, va a ver
ir a la mesa y encontrar un registro con ese
ID para la clave primaria, que por supuesto todavía
se encuentra con el riesgo de que sea no. Entonces tratamos de encontrar el auto. Sería ese ID si el
auto no es igual a no, entonces procedemos a
retirar la base de datos del automóvil, conseguir la mesa de autos, y quitamos este registro. Por lo que tenemos que encontrar el registro. Después quitamos el registro. Una vez más, estamos incrementando
datos por lo que guardamos los cambios. Después de todo eso, volvemos al índice. Por lo que aunque Kiara estuviera
modo en este caso, no
vamos a
devolver ninguna no telefonada. Sólo vamos a
redirigir a índice va. A lo mejor estás
tratando de eliminar algo que importaba el tiempo que
haces clic en el plomo, alguien más, lo
necesitaban, sin daño, sin falta, solo regresas
al índice. Una vez más, esto se
acaba de generar código. Si quieres hacer algo
diferente en tus escenarios, siéntete libre de
modificarlo como necesites. Este escenario funciona bien porque cuando pasamos al
Delete, vemos uno. Se ve igual a los detalles. Este es el mismo código que
estaba en la página de detalles. No obstante, tenemos un mensaje. ¿ Estás seguro de
que quieres eliminar esto? Simplemente voy a hacer lo que
siempre hacemos aquí donde
veo los mejores cambios están
golpeando borrar auto. ¿ Estás seguro de
que quieres eliminar esto? Mostramos los
detalles del auto, pero mira el formulario. Esta vez tenemos una forma de
todo lo que está en esta forma. Bueno, sí, es post método, pero todo lo que tiene es el
oculto para la identificación del coche. Eso es análisis básico P4. El Yo Am Voy a
atarme a esa propiedad. Por lo que habría visto
este formulario ESP, el Crear, ver cualquier cosa las actualizaciones, vinculante a esta
propiedad coche dot ID. Pero entonces el nombre del
inmueble será ID. Y luego en el Delete, eso realmente solo
lo vinculará al ID del parámetro. Entonces así es como
sé que solo estoy obteniendo el DNI de
este envío de formulario. Así que aquí estamos viendo es
un botón de enviar con el delete válido y es un peligro de guión BTN,
lo cual tiene sentido. Si cambias de opinión, siempre
puedes volver a la lista. Muy bien, echemos un
vistazo a lo que obtenemos con el delete. De la lista voy a
hacer click para eliminar. Se va a cargar mi registro, eliminar autos, por lo que
quieres eliminar esto. Y así en los detalles
del registro, podemos optar por eliminar o podemos optar por
volver a la lista. Entonces si hago clic en Eliminar, entonces vuelve a la
lista y ya no hay un coche en mi base de datos o
al menos las leyes de base de datos. Una carta menos y tenía
antes de hacer esa operación. Sólo voy a
crear recrear el auto rápidamente. Suzuki Swift sport. Y fue un 2013
haría y crear. Muy bien, entonces tenemos
nuestro registro de nuevo y puedes hacer esto por
tantos registros como necesites. Entonces esa es la opción uno. Te gustaría permitir que el usuario revise el
registro y pregunte, ¿
Estás seguro de que no pudieron
eliminar y confirmas? Sepa qué pasa si no
quisiera introducir otra página completa solo
para la operación de eliminación. ¿ Y si quisiera
eso aquí mismo? Cuando la persona hace clic en eliminar, les
pedí pop up tal vez. ¿ Estás seguro de que quieres eliminar? Haga clic en sí, y luego ocurre
la eliminación. Probemos algo que nadie método
de implementación de esto sería envolver cada enlace de eliminación en
un formulario y convertirlo
en un botón de envío en lugar de
solo una URL a la Delete. Sí, tenemos la página, pero volvamos
a nuestro índice y tipo de modificación o lo que
está pasando aquí. Podría decir forma aquí mismo. Déjame hacer bien mi ortografía. En esta forma,
vamos a tener botón. Este botón básicamente
va a ver lo
mismo que ve el
botón actual no comía. No quiero que necesariamente se
vea como un botón. Quiero decir, supongo que en
este momento
probablemente podamos empezar a ser
creativos con nuestros enlaces también. Entonces no hay problema. Sólo diré que la clase
es igual a vt n dash. Eso es editar. Por lo que probablemente querré que sea como una advertencia. Eso es todo. Es botón. Por supuesto cualquier botón
necesita ser T y luego btn dash el
tipo de botón. Este es un detalle, por lo que esta sería
b2 info de la industria, solo para mostrar la info. Y entonces este botón va a ser costo igual a b2 y peligroso, No, yo usuario no podría
decir cuál es un botón,
cuál es un enlace. Todos ellos se verán iguales. Tenemos este botón Eliminar. Lo que podemos hacer es decir onclick. Ya
miramos esas cosas de eventos cuando hablamos de
JavaScript antes, puedo ver, ¿Estás seguro de que
quieres eliminar este registro? Entonces onclick, voy
a devolver un confirmar. Entonces ese es un método incorporado. ¿ Y cuándo miraremos el método de alerta en JavaScript? Al hacer clic, confirmado es solo
otro métodos JavaScripts que estoy viendo desclicar
volver, confirmar. ¿ Estás seguro de que
quieres eliminar este registro? Yo soy que básicamente sólo
da un sí, no caja. Eso es realmente todo lo
que necesito para el botón. Pero luego volvemos a la forma uno. Queremos asegurarnos de que
sea el método post. Ahora voy a explicar
por qué queríamos
ser explícitos sobre que fuera post. Hay una serie de cosas
sucediendo con los postes. Por lo que los beneficios implícitos de usar los posts que
ya exploramos, donde hemos hablado
sobre el hecho de que los datos no se están
enviando a través de la URL. Se está ocultando
en el fondo. Entonces eso es bueno. Soy protección inherente a los datos
sensibles como nombre de usuario, contraseña,
información de tarjeta de crédito, etcétera. No, probablemente te
estés preguntando, vale, entonces qué desde entregable,
tal vez la identificación. Bueno, ya vimos que en
el Foro Delete incluso entonces, intentaron usar el post aquí porque este mismo concepto, golpearon el ID y luego
tuvimos el botón eliminar. Es lo mismo que estamos haciendo excepto que lo
estamos haciendo dentro de la lista en el índice. Pero entonces otros beneficios
de la publicación serían incorporados en ASP.Net Core, nuestras características de seguridad contra
XSS y el CRS si los ataques. Esencialmente
sin entrar en los detalles de lo que estos
dos significan y así sucesivamente. La forma en que funcionan sería
que las personas puedan usar JavaScript y secuestrar maliciosamente los datos
que se envían a través del cable. Lo que ASP.Net tiene incorporado
o ASP.Net Core. Cada vez que tengas un formulario y lo
conviertes en un post método, y luego lo tienes
en post
esperando ese tipo de envío a través de
esa publicación. Cuentan con el validar de
Tolkien antiextranjero que cualquier solicitud que
llegue a un puesto es válida desde el sistema y no secuestrada
por una entidad externa. De acuerdo, así que eso es como una característica de seguridad
que está incorporada. Doy no mencioné que no
te darías cuenta de que todo eso realmente está
sucediendo en segundo plano. Entonces por eso es
importante que a
pesar de que no estamos
generando ni formamos aquí, siempre
quieras
asegurarte de que lo tengas como post
método y esas características de
seguridad casi
estarían implícitas. Otras cosas que queremos hacer ahora que tenemos el formulario, tenemos el botón, tenemos que decirle
a dónde ir. Ahora cuando digo raro al gol, me refiero a que las otras páginas que tenían foros como vamos a ver, el Create crearon el
formulario que había dicho post método. No tenía nada explícito que decir a
dónde debía ir. Eso se debe a que supondrá que una vez que se presente el formulario, se trata de una solicitud de post. Por lo que automáticamente
irá al on post. De lo contrario va a conseguir lo
mismo con las actualizaciones, lo
mismo con
el índice de eliminación, sin embargo, solo tiene uno en Get. No tiene posts. Y sabremos que estamos
poniendo en una forma que va a
estar tratando de llamar a un método post en la
página de índice que no existe. Lo que podemos hacer ahora es
crear Handlers personalizados. Así que sólo buck trucking, sólo para que entendemos
en llegar a la publicación. Y el que
somos capaces de crear, a esos se les llama manejadores. Estos métodos conseguir, publicar, hacer lo que sea en
segundo plano, son manejadores. Por eso los llamamos. Tenemos que decirle al formulario
que debe ir a su ISP, P dash page dash handler. Voy a ver DDGT. Ese es el nombre del
manejador al que debe ir. El método es post. No. Además de eso, también
quería
obtener el valor id. Voy a ver es B
dash, escribió guión ID. Eso no soy yo diciendo que cuando estás enviando el formulario, quiero que pases por encima escribí valor o un
valor de cadena de consulta con ese nombre. Entonces si dijera auto ID
o si dijera pulpy, sea cual sea ese tipo
ahí después de que la palabra escribió, ese es el nombre de la
cadena de consulta que dice
el nombre del parámetro que mi
manejador estará buscando . Entonces lo voy a dejar
como yodo de coche en lugar de solo el DNI. Muy bien, entonces ahora se puede ver
explícitamente a lo que me refiero. Por lo que ASP ruta del dash,
identificación del coche debe tener el valor
de at sign item dot ID. Aviso cada vez que hacemos
clic en Editar o detalles, se
envía automáticamente a través del ID. Eso se debe a que desde
el bucle para-cada, cada elemento donde el enlace que
es p root dash ID aquí. Entonces eso ya está sucediendo. Lo vemos sucediendo
cuando haces clic en detalles. Se llama
página de detalles y está enviando sobre el valor id. Es por eso que en Get, está viendo identificación. Al igual que con detalles o
borrar más bien en Post, está buscando ID, y eso es porque el delete, déjame encontrarlo rápidamente
en el Delete, realidad
estamos sentados aquí. Sólo te estoy mostrando
diferentes sabores. Obtienes el código generado, pero es bueno entender cómo puedes hacer
lo mismo de múltiples maneras. Esto funciona el formulario y está enviando
el DNI esta semana. Esto también funcionará con menos líneas de código,
solo la forma. No obstante, diciendo ir a este manejador de
páginas y enviar un parámetro llamado Car
ID con el mismo valor de ID. Es un método postes. Estamos agregando esa
confirmación al botón. Y sólo voy a comentar
el enlace existente. Pero lo que vamos
a hacer ahora es crear ese manejador de eliminación
en el archivo de índice. En el código índice detrás. Puedo extender esto y puedo decir público y no
convertirlo en una tarea asíncrona. Digamos resultado de acción de tarea porque voy a querer que
devuelva un resultado real. Y voy a decir
en post, eliminar. Vamos a ver la
sintaxis en get on post. Y puedo decir post
asíncrono si quiero. Esa es una convención de nomenclatura
que reconocen. Eso es opcional. Pero mi punto es que uno sé es un método post
del foro, por lo que tengo que especificar en
post a llamo al delete. Dije que tu manejador es borra. Se
buscará automáticamente un manejador llamado delete que esté esperando
una respuesta post. Por lo que solo poner en
cartel en git
le dirá al manejador qué
tipo de solicitado debe estar buscando
del intento del Buró
en post delete. Lo que realmente voy a hacer
es solo reutilizar este código. Sólo voy a copiar eso
de la eliminación generada. Ciertas cosas no serán
adultas, pero eso está bien. Podemos rellenar los espacios en blanco, pero lo más importante
serían los parámetros. Así que voy a decir int signo de
interrogación identificación del coche. ¿ Por qué ID de coche? Porque en mi forma, el índice, sí
vi que tu raíz ASPE es identificación de auto para
todos los demás fue ID. ¿ Qué para este? Voy a decir identificación de auto. No lo estoy haciendo por
ninguna razón especial. Sólo te estoy mostrando. Lo que realmente hace la raíz ASP. Si cambio el ID, entonces mi manejador
necesita buscar ID. Si lo cambié a Puppy, necesita buscar cachorro. Sólo voy a
dejarlo como identificación de auto solo para que podamos ver
la diferencia. Entonces auto ID del formulario, va a llamar al pH 100 delete y es
un método post. Por lo que va a ir
por aquí y
buscar un manejador llamado
delete que está diseñado para en las respuestas post que está tomando el
parámetro llamado Car ID, entonces el código
tendrá que ser ajustado porque no hay identificación ya
no es identificación aquí, no
es identificación del coche, identificación del coche. Ahora había visto que no
hay auto seguro de un auto, eso está bien. Puedo ver fácilmente, dame una
variable local llamada auto, porque no necesito una propiedad de la clase como la última vez. Sólo necesito una
propiedad local llamada auto. Ve y encuentra el auto. ¿ Encontraste el auto? ¿Sí o no? En caso afirmativo, entonces retire auto. Muy bien, así que esta es
sólo mi variable local dentro de la eliminación. Entonces al hacer clic en Eliminar, tratamos de encontrar ID, señor. Tratamos de determinarlos. Id tiene un valor. De no llamarse por teléfono. Probablemente no
querrías no llamar aquí. Si estamos eliminando
directamente del índice, entonces eso está bien, eso está bien. Podemos dejarlo. Quiero
decir, una vez más, el contexto determinará cómo quiere utilizar una
experiencia para ser. Así que eso está bien. Lo dejamos,
lo dejamos como esta identificación del coche. Si hace clic en él, no telefoneado, intente encontrar el auto. Si el auto no es igual a nulo, entonces lo eliminamos y luego
recargamos la página de índice. Lee Erich a *****. Bueno, eso podría ser fácilmente redirigir a la página
sin nada en ella. Entonces literalmente solo diría, ¿en qué página estoy? Permítanme volver a cargar esa página. También podríamos decir tono de retorno. Por eso lo hice. En realidad resulta aquí. Entonces, a diferencia de éste, este no tenía un tipo de retorno. Por lo que no necesitaba los resultados de la acción
i. Pero en este caso quiero
devolver alguna forma de mando para decir llevarme de
vuelta a la página en la que estoy. Por eso dije tarea, resultado de
acción aquí. Retinol acaba de hacer la redirección
a la página sin ningún valor. Así que sólo te estoy mostrando
los diferentes escenarios. Una vez que te
pongas cómodo, empiezas
a escribir el código a nivel experto,
entonces estarías como, vale, sí, veo
como todo va juntos y sostengo
todo funciona. Tomemos este otro Delete o esta alternativa eliminar
código para una prueba de ejecución. Tan bien tomó
autos y luego está bien, podemos arreglar este
problema de visualización más adelante. No hay problema. Haga clic en Eliminar. Aquí está nuestro pronta. ¿ Estás seguro de que
quieres eliminar este registro? Si hacemos clic en Ok,
va, causó el manejador, el borrarlo leía
Eric al pH. Así que vamos a crear
otro auto de prueba. Algún año aleatorio. Voy a poner un punto de descanso. No estoy en modo de debug. Déjame ir al
modo de debug y luego podemos poner un punto de interrupción para
ver qué pasa. Cuando hago clic en Eliminar. Recibo el clic del prompt, Ok, entonces procede a
llamar al manejador. Entonces, una vez más, supo dónde buscar porque le dije el formulario, usar ese método en particular y pasar por encima de ese ID de ruta
en particular. Y esta es la solicitud de método, el método a utilizar. Los tres de estos
se combinan para dejar que se presente el formulario
nulo que quiere. Debería golpear a este manejador y al lado
de codificación de este manejador, el nombre sugiere que es, es un, un 100 supuestamente para
manejar este escenario. Este escenario es que quiero
eliminar este auto, identificaciones de
autos tres, de acuerdo, por lo que vemos que el ID de
ruta va por encima. Bueno, obviamente
llamó al auto en la datos o
encontrará
la base de datos actual, lo
eliminará, y luego redirigirá
a la página en la que está. Así que déjame golpear a
F5 y ya ves que
acabas de leer Eric
sin ningún ajetreo. Muy bien, así que acabo de
arreglar rápidamente la pantalla es que estás teniendo aquí
con los botones. Y es una solución realmente simple. Probabilidad, incluso un HUC, dependiendo de cómo lo mires. Pero en lugar de poner
las etiquetas de ancla lado viejo, acabo de poner todo en la forma porque la forma es
lo que estaba rompiendo las líneas. Entonces acabo de poner las etiquetas de anclaje
dentro del formulario y eso es realmente saber consecuencias porque al final del día, sólo el botón
hará el envío. Si hago clic en Editar, simplemente
se alejará. Si hago click en Detalles,
navega lejos. Entonces si hago clic en Eliminar, me solicitan
efectivamente cancelado. No pasa nada. Y luego si hago clic en Ok, hemos visto lo que
pasa. Esto es agujero. Puedes empezar a trabajar un poco de JavaScript en el
nodo para empezar a ver, vale, bueno, esto es
lo que se supone que debe hacer. Cuando volvamos, te voy a mostrar un poco
más de JavaScript. Empezaré a diseñar nuestras páginas porque vemos que nuestro botón
Crear está arriba. Parece un enlace. Empezamos a
mirar total para dar
estilo al botón Editar, la lista de botones sigue siendo un enlace. El detalle tiene dos enlaces. Entonces, cuando volvamos, veremos un aviso de
confirmación más robusto. Vamos a estar usando esta
biblioteca llamada Sweet alert. Eso es uno. Y cómo podemos usar JavaScript
o jQuery para conseguir eso en. Y dos comenzarán a
estilizar un poco más los RPGs.
14. Uso de vistas parciales y mejoras de la UI: Muy bien, bienvenido de nuevo. Entonces nuestro objetivo para esta
lección es un estilo todos nuestros enlaces para lucir un
poco más amigables. Y lo que queremos hacer es poner en una confirmación un poco más robusta en la eliminación al menos. Empecemos. En primer lugar, vamos a crear el
cambio y crear enlace. Déjame saltar del modo de depuración, ir a mi archivo index.html, y aquí está el botón Crear. Entonces vimos que todo lo que tenemos que
hacer por nuestras etiquetas de anclaje es darles la clase BTN dash. Soy primaria para el Create. Vamos a ser un poco más creativos
allí momentos en los que tal vez quieras pensar en
poner los iconos ¿verdad? Así que a veces no
quieres que toda la palabra edite o toda la palabra detalles. Y incluso puedes quitar un poco
estos iconos de tubería. O incluso como el Create que probablemente
querrías y es un
signo más en su alma. Lo que podemos usar para eso
sería Font Awesome, que es una biblioteca que
tiene una serie de iconos. Y podemos mirarlo rápidamente. Si saltas a Font Awesome.com y estamos viendo los iconos en la versión 4.7, verás que tienes bastantes iconos
que puedes usar. La mayoría de ellos son gratuitos. Es posible que tengas que
pagar o inscribirte en alguna cuenta que
tengan, pero eso está bien. Pero en este momento, hay
tantos íconos que te
sacas de la caja que
es realmente genial. Entonces si quieres un signo más, estoy seguro de tener un uso
Pelosi de plus. Creo que tienen como un frijol o basura o algo
para significar eliminar. Pero tienen bastantes
iconos que podemos usar con el
fin de solo mostrar
ciertas cosas. Ahí vamos, basura. Por lo que a veces quieres un ícono. Ahora, ¿qué
crees que podrías ser? Se llama
otra cosa, pero no hay problema. Veamos cómo podemos integrar
esto en nuestro proyecto. Volver a nuestro código. Podemos hacer clic derecho dub, dub, carpeta raíz dub. Y luego podemos agregar una biblioteca del lado del
cliente. Cuando hacemos eso, sólo
tenemos que escribir en fuente. También muchos asientos ya tipo
de relleno adeudados por nosotros. Así Font, Impresionante, selector de iconos. Y entonces ese no es el 101. No es un icono de peaker. Déjame intentarlo de nuevo. Así que solo estoy quitando la ubicación objetivo. Permítanme en realidad sólo
asesorar y empezar de nuevo. Así que agrega biblioteca del lado del cliente. Simplemente escribiré fuente, y ahí está,
guión de fuente, Impresionante. Eso es lo que quiero. Cuando hacemos clic en eso verás va a decirles a
los que
vamos a estar poniéndolo en
la ubicación objetivo de dub, dub, dub route slash
font. Impresionante. Pero me gusta que todas
mis bibliotecas de terceros estén
organizadas en el mismo lugar. Entonces en cambio voy
a decir dub, dub, dub route slash, LIB slash Font. Impresionante, Ahí es donde quiero. Pero estos son todos los archivos
que vamos a conseguir. Y no voy a
modificar nada de eso. Voy a elegir archivos
específicos. Sólo voy a seguir
adelante y golpear Instalar. Y luego
descargará lo requerido para mí y lo agregará a la
carpeta que especifico. Ahí está, Font Impresionante. También tenemos un archivo
adicional en forma
de este
Lindeman dot JSON, que básicamente es
simplemente llamativo decir que estas son las bibliotecas que
has utilizado el gestor de
biblioteca cliente para instalar. Muy bien, eso se ve bien hasta ahora. Saber lo que necesito hacer es todo
el diseño sepa
que también debe incluir recursos
Font Awesome. En el área de la cabeza donde
puse todas mis hojas de estilo
justo encima del bootstrap. Fui a poner en la hoja de
estilo para la fuente. También. ¿De dónde obtengo
esta hoja de estilo? Está en la carpeta lib, carpeta Font Awesome, carpeta CSS. Y entonces verás todo
todo el punto Min es una especie de
colapso en la deuda. Entonces en lugar de usar el todo
usamos la versión minificada. Ya discutimos
la diferencia entre la versión única
y la minificada,
correcta, por lo que sólo vamos a hacer eso. Por lo que incluimos ese
expediente justo ahí. Con esa inclusión, puedo No, seguir adelante y mirar
cómo puedo usar mis iconos. Si vuelvo a saltar a la página web y
miro los ejemplos, entonces me mostrará cómo se ve
la sintaxis
y es realmente simple. Todo lo que necesitamos es una etiqueta I
y luego una clase con FA. Y luego si un guión, sea cual sea el ícono
que estamos buscando. Sí dijimos que queríamos
como una basura para la eliminación. On. Aquí hay un ejemplo práctico. Tienes la etiqueta ancla, y no
configuraron la etiqueta ancla, tienes ese ícono. Entonces lo que sea
que tome el uno, ahí es donde se obtiene ese ícono de
anfitrión al lado de casa. Ese libro dijimos biblioteca, etcétera para que puedas ser muy creativo y usar estos iconos
como te parezca conveniente. Entonces aquí hay algo práctico que vemos aquí
tenemos la papelera. ¿ Cómo obtengo la papelera? Vale, es basura. Así que
sólo voy a pedir prestado esto. Saltar a nuestro código. Entonces en el botón eliminar
en lugar de la palabra eliminar, solo
quiero el
icono para la papelera. Para editar. A lo mejor sólo quiero y
déjame ver cuál es el testimonio. Entonces creo que si no me equivoco, la inteligencia
realmente comenzará a llenarse u opciones basadas en el hecho de
que incluyamos el CSS. ¿ Y si quisiera
un libro para editar? Déjame ver si hay una edición. Editar. Hay uno explícitamente para editar. Y luego para detalles probablemente
podamos usar algo como déjame ver si hay algo
para los detalles. No, entonces podemos usar bulk o un viejo
guion de libros Open. Ahí vamos. A veces puedes,
tendrías que sentarte y explorar las diferentes ideas de íconos
o las opciones más bien. Y luego te
acercas a la tuya basada en lo
que quieras transmitir al usuario. Así que sólo voy a previsualizar
rápidamente esto. Cuando echamos un
vistazo, vemos que, vale, esto parece una edición. Este es un libro abierto. Yo sostengo. Mi usuario inferiría que este es el aspecto de los detalles más y luego el
ícono de la papelera no aparece. Así que si salto hacia atrás, a veces también basado en la
versión de la fuente Awesome file que estás usando ciertos campos son ciertas clases
podrían no funcionar. Así que como basura dot dash o podría no funcionar pero
discontinuado basura mi trabajo. Así que déjame que acabo de hacer
ese cambio refrescarse. Y ahí vamos. Así que estamos haciendo que nuestra
papelera luzca mucho mejor. Solo te estoy mostrando
que estas son formas que
puedes usar para condimentar cómo serán tus pantallas si no quieres
confiar solo en los iconos,
porque no todo el mundo podría inferir lo que nosotros quieren que
de solo los iconos y siempre
se puede editar el icono de
texto luego la palabra editar detalles y eliminar. No se diga que no
fue muy fácil de usar
porque no
sabías lo que
menos los
iconos MIT Boulder le aporta ese
poco estilo. Así que incluso para el botón Crear, el link create,
más bien solo voy a copiar eso que etiqueto. Y entonces esto está
creando un nuevo bot. Entonces arriba arriba, voy a
ver ¿hay un signo más? Hay un signo más. Entonces si un guión más refrescar, y vemos que plus
inscribirse periodos. Entonces es así como puedes empezar
a sacar al corruptor a tu pantalla de tu aplicación usando estas bibliotecas
de terceros. Puedes pasar por. Desafía a
rediseñar estas páginas, ponerme en el buck para enumerar un poco más robusto en los detalles. Ella es la editora y el
dinero para enumerar aquí y vamos a necesitar ya está
haciendo lo que tiene que hacer. Puedes seguir adelante y hacer eso. Por lo que espero que
asumiera ese reto y
que siguiera adelante y aplicara algo de creatividad
a las otras páginas. Pero te voy a
mostrar lo que hice. Y así podemos comparar
notas en la edición. Todo lo que hice fue agregar
esto de nuevo a la lista. Ahora observa que esta lista
anterior de dos es, es un golpeado con una bobina
primaria o ambas. Sólo tiene esa mirada
cuando me pongo sobre ella. Eso se
logró fácilmente mediante el uso BTA y la línea de guión, guión primario. Por todas las páginas que tenían el dólar para listar el
enlace hacia abajo en la parte inferior, lo que hice fue moverlo
fuera de la DV estaba adentro, ponerlo en el
mismo div que el botón Enviar, y luego darle el btn,
btn esbozar primaria. Y todo lo demás
permaneció intacto, pero le di icono de flecha izquierda. Aún entonces, perdí una oportunidad
aquí con la entrada. Entonces la entrada no
puso en ese icono. En la entrada. El botón guardar es solo una
entrada no es una etiqueta de botón, es solo una etiqueta de entrada. Si quisiera poner
en algo para decir que está guardado y no
podría usar la entrada. Lo que tendría que
hacer es usar el botón. Vine a mostrarte
lo que hice y me estoy dando cuenta de que si
tuviera más espacio para
mejoras para poder
cumplir con ese botón y
darte la clase btn,
btn dash advertencia. Y luego los botones
pueden tomar un tipo. Y éste sería un botón
Enviar. Eso está bien. Pero entonces por su ícono, veamos qué ícono
podría usar aquí. Si es, hay un Save, vale, si guardo y creo
que eso nos va a dar ese disquete, este ícono de aspecto. Entonces después de hacer esos cambios, termino con ese
botón de guardar versus las entradas. Así que solo
te estoy mostrando cómo puedes usar diferentes etiquetas para lograr
la misma funcionalidad. Por lo que ahora puedo eliminar esa etiqueta
de entrada o esa entrada. Sí y no. Sólo tengo este guardado con
ícono o arriba para enumerar. Una vez más, esa
pequeña animación hover se logra solo
por falta BTN, guión de
contorno, y luego tienes la misma
advertencia primaria, peligro, etcétera yo estaba en un proceso. Te
veré en que cada página que tenía el buck to list link, todo lo que hice fue moverla
al mismo grupo de formularios que el botón para
el envío. Entonces esa es la
página de actualización en el Crear. Hice lo mismo para
poder conocer el mismo tipo de modificación aquí con
el botón Crear. Sólo voy a hacer eso
mientras todos estamos aquí mirando. Tomado ese botón y esto
es casi tan sencillo copia NPS solo la
diferencia
sería que esto sería primario. O puedo hacerlo
algo más como el éxito porque es un Create, así que es éxito, crear. Y luego puede tener también
el ícono de guardar. Podía ver si hay
algo más que me vendría bien. No puedo pensar en
nada más este momento, así que lo dejaré con
la página Guardar, la Crear. Clip hasta la lista dos y
hago clic en Crear nuevo, obtengo ese botón verde. Ese buck para enumerar. De acuerdo, entonces para mi página de detalles donde tuve la edición y volver
a Listar los mismos principios. Entonces este es el
mismo botón que viene de la
página de índice para el Editar. Y entonces esta es la
misma lista de bucket que hemos estado usando. No, hay una pequeña diferencia
sintáctica en el discurso de detalles donde el
ID de ruta del tablero ASP por supuesto es
model.py car dot ID. Entonces esa es una diferencia
entre lo que habría sido y lo que tenía que
escribir lo que había en la página de índice más bien frente a
lo que tiene que ser en esta página. De lo contrario. Ahora estamos empezando a ver cómo podemos añadir un poco, vez más carácter
a nuestra aplicación. Ahora que sabemos
integrar bibliotecas de terceros, lo último que
vamos a hacer es usar alertas
dulces para manejar
la confirmación para
el Delete en lugar
del script Java estándar pronta que
actualmente estamos utilizando. Paso número uno, encontremos
nuestras dulces alertas Biblioteca. Haga clic con el botón derecho www root otra vez,
agregue biblioteca del lado del cliente. Y sólo voy a escribir dulces alertas ahí
está apareciendo. Sólo voy a seguir
adelante e incluir eso. Y luego una vez más estoy
cambiando la ubicación. Quería dub, dub,
dub o root slash lib slash
slash sweet alert. Adelante y pulsa Instalar. Se actualizará o
gestor de biblioteca o un archivo lib man. Por lo que ahora sabemos qué
biblioteca adicional se ha agregado, pero también obtenemos los archivos o el archivo
agregado al proyecto. Sepan que eso está en su lugar. Vamos a saltar a nuestro archivo de diseño e
incluir el guión. Entonces la razón por la que vamos
a incluirla en el layout y no en la página
ni en la, ya sabes, exactamente donde eso si lo
queremos en múltiples lugares, entonces tendrías
que repetir esa inclusión en todas partes, que no necesariamente quiero. Por lo que sólo voy a incluir la amenaza
por encima del sitio SIG. Simplemente agregaré esa etiqueta de
script donde el SRC es igual a. Voy a saber que está en la
barra de lib asientos barra de alerta. Todo eso estaba abajo por
inteligencia. Agradable y limpio. Es decir, no, podemos acceder a esa biblioteca de alertas dulces desde cualquier lugar de nuestra aplicación. posible que lo desee en
diferentes páginas. Cuando tienes
diferentes archivos de índice, quieres tener el mismo
tipo de funcionalidad de eliminación. Puedes, puedes
hacerlo en todas partes. Cuando vuelvo
a mi página de índice, necesito configurar una
sección para un guion. Ahora, esto es algo
que ya vimos porque en nuestra página Crear, era su sección
para guiones. Entonces déjame darte un
trasfondo en cuanto a lo que es
esta sección lo
puedo resaltar en. De acuerdo, queríamos incluir
los guiones y así sucesivamente, pero no expliqué
del todo por qué la sección está ahí y
no solo incluimos los guiones. Volviendo a nuestra vieja página
alelo, notarías que
tienes diferentes secciones, por lo que tienes el tipo de datos de vista. Ya establecimos para
qué sirve eso. También tenemos el cuerpo de render. Ya establecimos
que ahí es donde todo el contenido dentro de nuestras vistas, se va a renderizar dentro de todo
el layout posteriormente, no, verás que
también tienes una sección que dice render sección
llamada scripts, y no se requiere. Esto permite que siempre que
queramos poner en un script, podamos invocar esa sección, poniendo ese
script jQuery
JavaScript personalizado o lo que sea. Y cuando la página
de un todo se renderiza, ese área de guion
se rendería debajo todo lo demás o relativo a su posición
en la pieza Leo, ahí es donde se
renderizará. Esto es importante porque recuerden
hablo de dependencias. Jquery, entonces, entonces bootstrap
tiene una dependencia de jQuery. Eso significa que no puedo poner
la inclusión de arranque o referencia de escritura
por encima de jQuery porque entonces lo que Bootstrap necesita hacer no
estará disponible porque
jQuery no estaba disponible. Al igual que con la dulce alerta. No puedo llamarlo una dulce
alerta si no tengo la biblioteca de alertas dulce ya disponible en el momento en
que estoy escribiendo mi código. Si bien tenemos que hacer
es asegurarnos de que
tengamos todos nuestros scripts que
se necesitan en todos los ámbitos,
todo en nuestro diseño y luego
en nuestros puntos de vista cada vez que
necesitemos un script o personalizado
referenciado a otro script, nos aseguramos de que
lo ponga en sección. Volviendo a uno de
los foros existentes, el razonablemente a hacer
los scripts de validación es
que los scripts de validación son ambas bibliotecas relacionadas con jQuery. Estaremos llamando a la funcionalidad
jQuery antes de que exista el archivo jQuery. Lo pone en esta
sección para que cuando toda la página de diseño se renderice con todos
los guiones y la
novela y así sucesivamente. Jquery ya está en la página. Entonces para cuando se carga el formulario, los scripts de validación jQuery se cargan después del jQuery. En nuestro caso, queremos asegurarnos de que
llamamos
a nuestro dulce código de
alerta después las bibliotecas de alertas dulces
no estén en un pitch en la sección de ciencias a la
que fui. Mira, quise abrir y cerrar
la sección de guiones. Entonces aquí puedo empezar a escribir mi propio JavaScript personalizado o
jQuery o lo que quiera. En esta situación, necesito un evento jQuery
para ver cuándo se
está enviando el formulario. Muy bien, así que
leamos esto juntos. Veamos si va a funcionar, pero solo te voy a
guiar por lo que estoy haciendo y podemos
arreglarlo a medida que avanzamos. Entonces signo de dólar,
estamos usando jQuery. Así que una vez más, no puedo estar
usando el código jQuery hasta que la biblioteca jQuery ya
exista y haya sido invocada. Sólo voy a signo de dólar C. Poner en esa función
punto la función global abierta y cerrada, corsé punto y coma. Y luego dentro de
esta función o puedo empezar a escribir
mi código personalizado. Así que signo de dólar, y estoy
buscando un envío de formulario. Por lo que sólo voy
a decir formulario presentar. Entonces en un formulario de envío, queremos que el teléfono Shun. Y fui a darles a dos
un parámetro llamado E. Así que E es como un argumento de
evento para ver, bueno, represento el evento
que está a punto de suceder. Por lo que estás tratando de
presentar el formulario. E tiene la información para todo lo que está a
punto de pasar. Lo primero que
quería hacer es decirle E dot prevent default porque la operación por defecto de un envío de
formulario es enviar. Quería pausar eso porque estoy a punto de
preguntar, ¿Estás seguro? Muy bien. Entonces el botón
recuerda que estamos agradando a esta materia sin hacer clic
con las dulces alertas. Por lo que hace clic en el botón, quiero pausar el comportamiento predeterminado
del envío del formulario. Y entonces voy a ver swale, que es mis dulces alertas, mientras que es corto para alertas dulces. En lugar de esos tirantes abiertos. Y luego voy a,
solo, en JavaScript,
la sugerencia de código no
es tan poderosa como HTML y CSS y C-sharp. Entonces lo que intenté
hacer es cuando abro algo que cierra a la misma
hora y pongo el punto y coma, así que no lo olvido más adelante. Swale toma algunos
argumentos y si lo desea, puede buscar la dulce documentación de
alerta. Siempre es bueno
mirar el documento es. Así que cuando no estés seguro, pero por ahora solo continuaré y
solo lo veremos aquí. Entonces fui a ver, ¿estás seguro? ¿ Este es el título de la pronta? Como? Entonces tenemos el texto, que será el mensaje real que la persona va a ver, que es lo que voy a
ver como lo que teníamos antes. ¿ Estás seguro de que
quieres eliminar este registro? Ir a ver ícono. Icono es advertencia,
por lo que sabe que este es un momento muy serio. Voy a decir
botones igual a verdad. Así que las alertas dulces
realmente pueden ser como un pop-up para
decir, está bien, esto sucedió. clic fuera y dices, bien, cuando dices botones, sin embargo, por defecto te va a
dar la archaea y cancelar tipo de prompt como
lo que vimos con el onclick. Entonces también vemos que un modo de
peligro es cierto. Observe que cada línea termina con una coma porque esto es como un edificio o
para todo el objeto. Tenga en cuenta que tenemos el
dulce objeto de alerta que
Bill dijo
que necesitamos seguir viendo. Entonces. El entonces parte va a ser como un delegado notas para
ver, ver la entrada
del usuario. Los insumos se almacenarán en
cualquier variable que pongamos. Ento