En lugar de usar el objeto directamente, en una simple Razor View tengo un formulario que utiliza como es + model
un objeto decorador.El modelo no aplica DataType.Password
public class GlobalAccount
{
public GlobalAccount()
{
this.TestService = new TestServiceModel();
}
public TestServiceModel TestService { get; set; }
}
beeing TestServiceModel
representa como
public class TestServiceModel
{
[Required]
[Display(Name = "Endpoint (url of your service like http://mydomain/remote/)")]
public string Endpoint { get; set; }
[Required]
[Display(Name = "System username")]
public string UserName { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = "System password")]
public string Password { get; set; }
}
Nota la propiedad Password
decorado con DataType.Password
y en una Partial Razor view
tengo una llamada a ese objeto
@model OnlineServices.Administration.Models.GlobalAccount
...
@Html.TextBoxFor(model => model.TestService.Password, new { size = "30" })
problema es que, en el html
consigo type="text"
en lugar de text="password"
Se puede ver en todo el flujo this image:
¿Qué soy yo falta aquí?
mudo ... tan simple como tan lejos! Simplemente lo pasé por alto ... siempre estaba pensando en algo malo en el modelo y nunca vi con mis propios ojos la vista: -/** NECESITO VACACIONES! **: o) – balexandre
Es fácil pasar por alto. – Kieron
Considere utilizar Html.PasswordFor en su lugar (vea la respuesta de @Skuld a continuación) –