validations net mvc asp html asp.net-mvc

html - validations - validation asp net mvc



asp.net mvc agregando css a editorfor? (5)

Me gustaría cambiar el estilo del cuadro de texto ''editor para'' de MVC, específicamente quiero hacer el cuadro de texto más grande.

He intentado agregar css de varias maneras, sin éxito.

incluyendo:

<td class="myCss"><%=Html.EditorFor(x => x.NickName)%></td>

y

<td class="myCss"><%=Html.EditorFor(x => x.NickName, new { @class = "myCss" })%></td>

ayuda por favor


Coloque el resultado de EditorFor dentro de un div con algún atributo de clase, y dentro de la definición de estilo para esta clase, use una directiva importante para forzar la aceptación de los valores deseados a cualquier elemento dentro de ese div.


En lugar de requerir que su campo de entrada tenga la clase aplicada directamente, puede usar lo siguiente:

<div class="editor-field myCss"> @Html.EditorFor(model => model.Nickname) </div>

Lo que resulta en aproximadamente el siguiente HTML

<div class="editor-field myCss"> <input class="text-box single-line" data-val="true" id="Nickname" name="Nickname" type="text" value=""> </div>

Luego solo usa la regla CSS para un estilo apropiado

.myCss input.text-box {font-size: 2em;}


Prueba esto

<%= Html.TextBoxFor(x => x.NickName, new { @class = "myCss" })%>

o

<%= Html.TextAreaFor(x => x.NickName, new { cols = "40%", @class = "myCss" })%>

Ahora puede definir sus atributos porque MVC sabe qué tipo usar (TextArea).


Prueba esto,

https://.com/a/4249988/505474

Copiado desde el enlace de arriba,

@model DateTime? @Html.TextBox("", (Model.HasValue ? Model.Value.ToShortDateString() : string.Empty), new { @class = "datePicker" })

Esto funciona para mi...


robh

es difícil saber por su pregunta si está buscando una solución ''genérica'' o específica dentro de su proyecto. como tal, voy a abordar el problema genérico: funciona una vez, funciona en todas partes.

Esto implica tomar algunos pasos (convención sobre configuración). básicamente esto es lo que se requiere:

  • crear una nueva carpeta en ''vistas-> compartidas llamadas plantillas de editor ''
  • cree un nuevo archivo de usercotrol (ascx) bajo el llamado ''string.ascx''

ahora, define ese archivo ascx según:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<string>" %> <div class="editor-label"> <%= Html.LabelFor(model => model) %> </div> <div class="new-editor-field"> <%= Html.TextBoxFor(model => model) %> <%= Html.ValidationMessageFor(model => model) %> </div>

ahora esto hará que todas las llamadas EditorFor () basadas en ''cadenas'' usen esta ''plantilla''. simplemente haga que la clase ''nuevo-campo-editor'' refleje su estilo CSS deseado para ese campo. obviamente, cocine de acuerdo con sus propios requisitos (es decir, es posible que no desee la etiqueta), etc.

Espero que esto ayude, aunque tengo que decir que esta es solo una de las pocas formas de hacerlo (pero es mi forma preferida).

disfrutar

jim