Simple pregunta, si el uso de la ayuda Html de ASP.NET MVC Framework 1 es fácil establecer un valor predeterminado en un cuadro de texto debido a que hay una sobrecarga de Html.TextBox(string name, object value). Cuando he intentado utilizar la Html.TextBoxFor método, mi primera idea fue tratar la siguiente, que no funciona:

<%: Html.TextBoxFor(x => x.Age, new { value = "0"}) %>

Debo seguir con Html.Cuadro de texto(string, object) para ahora?

  • el uso de este <%: Html.TextBoxFor(x => x.La edad, el nuevo { Valor = «0»}) %> ,hacer un pequeño cambio V de capital en el Valor.
InformationsquelleAutor dcompiled | 2010-06-14

12 Comentarios

  1. 339

    usted puede probar este

    <%= Html.TextBoxFor(x => x.Age, new { @Value = "0"}) %>
    • La curiosidad de saber por qué la capital de la » V «obras y minúsculas de la» v » no? Además, esta solución se reemplaza el valor de modelo para la Edad, incluso si uno está presente.
    • valor con pequeñas v es la palabra clave para C#, msdn.microsoft.com/en-us/library/x9fsa0sw.aspx. Así que yo creo que es por eso que no funciona.
    • Upvoted el comentario porque uno upvote una respuesta de este oscuro y profundo que parecía… inadecuado.
    • Todavía es curioso que @valor no funciona. readonly es también una palabra clave de C#, pero @readonly funciona sin problemas.
    • Se ve muy extraño por qué este @Valor – obras
    • El código fuente html en el navegador es <input Value=»0″ id=»Edad» name=»Edad» type=»text» value=»» /> cuando el uso de @Valor. Hay tanto «Valor» con «0» y «valor» con «» en la etiqueta de entrada.
    • ¿Cuál sería el mismo para Vb.net?
    • stackoverflow.com/questions/14142511/…
    • en esta respuesta es correcta. valor = «0» esto no va a funcionar. Valor = «0» esto va a funcionar. Debido a que V es la capital de la carta. necesidad de incluir en el también.
    • value es una palabra clave contextual en C#, y sólo como un significado especial en la propiedad getters y setters. Mi conjetura es que el MVC código está codificado para buscar el «Valor» porque MS pretende que siempre use PascalCase propiedad nombres, ya que es su típico de la convención y para evitar conflictos con los no-contextual de palabras clave tales como class. Todo se procesa en el HTML como en minúsculas, de todos modos. más
    • Cómo lograr el mismo con «TextAreaFor» ? valores por defecto más de fila y col
    • Me gustaría añadir que esta puede ser la solución para MVC 1, pero para cualquier versión más reciente de esto es unncessary. No es necesario especificar @Valor, la HtmlHelpers automáticamente debe mostrar un valor en el cuadro de texto si el modelo de propiedad ya que tiene un valor. No estoy seguro de qué versión de MVC esto se agregó, pero es algo a tener en cuenta.
    • hey que no es trabajo?
    • NUNCA conjunto de la value atributo cuando se utiliza HtmlHelper métodos. Establece el valor de la propiedad en el método GET antes de pasar el modelo a la vista.

  2. 58

    Esto debería funcionar para MVC3 & MVC4

     @Html.TextBoxFor(m => m.Age, new { @Value = "12" }) 

    Si quieres ser un campo oculto

     @Html.TextBoxFor(m => m.Age, new { @Value = "12",@type="hidden" }) 
    • Para campos ocultos, sólo tiene que utilizar @Html.HiddenFor(m => m.La edad, el nuevo { @Value = «12» })
    • bueno @Html.HiddenFor(m => m.La edad, el nuevo { @Value = «12» }) no wokring
    • Y ¿por qué ocultar una codificado valor predeterminado de este tipo ? sin sentido
    • esto fue muy útil! gracias
  3. 31

    Resulta que si usted no especifica el Modelo a la Vista de método dentro de su controlador, no crear un objeto con los valores por defecto.

    [AcceptVerbs(HttpVerbs.Get)]
    public ViewResult Create()
    {
      //Loads default values
      Instructor i = new Instructor();
      return View("Create", i);
    }
    
    [AcceptVerbs(HttpVerbs.Get)]
    public ViewResult Create()
    {
      //Does not load default values from instructor
      return View("Create");
    }
    • Esta fue la solución a mi proyecto, gracias.
    • Me gustó este enfoque, gracias!
    • Más probable es MVC error o característica, ya que Html.PasswordFor(m => m.Contraseña, la nueva { class = «form-control», » valor =»default» se representa en casi el mismo código html, y el «default» ir a el valor que se muestra correctamente. Por ejemplo, el valor=Modelo.El correo electrónico funciona, pero value=ViewBag.El correo electrónico no funciona. Así que esta aceptado respuesta es mejor y más limpia, no así la piratería.
    • ¿Qué es Instructor?
  4. 20

    El valor predeterminado será el valor de su Model.Age de la propiedad. Ese es el punto entero.

    • Parece que es una mala idea cuando se administra los valores por defecto. Qué se debe hacer cuando predeterminados diferentes necesidades del valor para la misma colección de elementos de modelo?
    • De acuerdo, esto enturbia la separación de la capa de interfaz de usuario
  5. 16

    Usted puede simplemente hacer :

    <%= Html.TextBoxFor(x => x.Age, new { @Value = "0"}) %>

    o mejor, este cambiará al valor predeterminado ‘0’ si el modelo es nulo, por ejemplo, si tienen el mismo punto de vista tanto para la edición y creación :

    @Html.TextBoxFor(x => x.Age, new { @Value = (Model==null) ? "0" : Model.Age.ToString() })
  6. 11

    valor=»0″ conjunto de defualt valor de @Html.TextBoxfor

    su caso sensibles
    «v» debe ser la capital

    A continuación es ejemplo de trabajo:

    @Html.TextBoxFor(m => m.Nights, 
        new { @min = "1", @max = "10", @type = "number", @id = "Nights", @name = "Nights", Value = "1" })
    • «»v» debe ser de capital» tiene mi voto..
  7. 8

    Utilizando @Value es un hack, porque las salidas de dos atributos, por ejemplo:

    <input type="..." Value="foo" value=""/>

    Usted debe hacer esto en su lugar:

    @Html.TextBox(Html.NameFor(p => p.FirstName).ToString(), "foo")
  8. 8

    He aquí cómo lo resolví. Esto funciona si usted también lo uso para la edición.

    @Html.TextBoxFor(m => m.Age, new { Value = Model.Age.ToString() ?? "0" })
    • Esta mirada como una reescritura de una respuesta…
    • si la Edad es nulo.. usted va a obtener una excepción de puntero nulo debido a que el ?? va a intentar comprobar el retorno de la ToString().
    • Acepta valores null<T>.ToString() devolverá una cadena vacía si el valor es null.
    • gracias por mostrar cómo el modelo se unen en un objeto anónimo
  9. 6

    Este trabajo para mí

    @Html.TextBoxFor(model => model.Age, htmlAttributes: new { @Value = "" })
    • Para mí esto funciona muy
    • +1 para el parámetro con nombre que es sobre todo útil en la copia/pastable código y que utiliza un método con muchas sobrecargas
  10. 5

    Si usted tiene una página parcial formulario para la edición y agregar, a continuación, el truco que uso para el valor predeterminado para 0 es hacer lo siguiente:

    @Html.TextBox("Age", Model.Age ?? 0)

    De esa manera será 0 si no se especifica o la edad real, si es que existe.

    • Si la Edad es un int, que no funciona; sería necesario que acepta valores null int.
  11. 5

    esto funcionó para mí , de esta manera podemos establecer el valor predeterminado para la cadena vacía

    @Html.TextBoxFor(m => m.Id, new { @Value = "" })
    • Mientras que este código puede responder a la pregunta, sería mejor incluir un poco de contexto, explicando cómo funciona y cuándo usarlo. Código sólo respuestas no son útiles en el largo plazo.
    • añadido algunos comentarios
  12. 0

    Probar este también, que se quite nuevo { } y reemplazarlo con una cuerda.

    <%: Html.TextBoxFor(x => x.Age,"0") %>

Dejar respuesta

Please enter your comment!
Please enter your name here