configurar la configuración de la cultura en la aplicación MVC3

Implementé una aplicación MVC3 que funciona bien en el entorno de desarrollo, eso se debe a que el formato de fecha en la máquina de desarrollo es dd / mm / aaaa. Pero cuando la aplicación se implementó en el servidor comienza a recibir errores en el lado del servidor para fechas no válidas, porque en el servidor el formato de fecha es mm / dd / aaaa. Ahora mi pregunta es: ¿Necesito configurar el servidor? o solo el IIS 7.0 para esta cultura específica ??. Cualquiera que sea la respuesta, hágamelo saber cómo puedo hacer esto. Estoy trabajando en un servidor Windows 2008 R2 y iis 7.5

preguntado el 08 de noviembre de 11 a las 14:11

¿De dónde vienen las fechas? Por lo general, no debería utilizar la cultura del sistema. en absoluto al desarrollar una aplicación web, después de todo, puede que no sea lo mismo que el usuario. -

Las fechas provienen de una entrada de texto, con un selector de fecha de jquery que hace que el formato en el lado del cliente, también la validación del formato en el lado del cliente funcione bien, el problema es con la validación en el lado del servidor -

Si la entrada es del usuario, probablemente debería utilizar la cultura del usuario. -

2 Respuestas

La forma más fácil de asegurarse de que siempre se use la misma cultura es configurarla en su controlador base:

public override void OnActionExecuting(ActionExecutingContext filterContext)
{
    Thread.CurrentThread.CurrentUICulture = 
        Thread.CurrentThread.CurrentCulture = new CultureInfo(1033); //en-us
}

Pero un enfoque más sólido es crear un nuevo filtro de acción:

public class UseEnglishCultureAttribute : ActionFilterAttribute 
{
    public override void OnActionExecuting(ActionExecutingContext filterContext) 
    {
        Thread.CurrentThread.CurrentUICulture = 
            Thread.CurrentThread.CurrentCulture = new CultureInfo(1033); //en-us
    }
}

Y etiquete su controlador con él:

[UseEnglishCulture]
public class BaseController : Controller
{
}

respondido 08 nov., 11:19

Qué podría hacer para que su cultura de código no dependa:

  1. Haga clic con el botón derecho en su proyecto y vaya a propiedades -> análisis de código. Active las Reglas de globalización de Microsoft y analice su código.

  2. Le dará advertencias para todos los lugares donde usó DateTime y no especificó una cultura. Para los que deben ser de formato independiente, agregue CultureInfo.InvariantCulture

respondido 08 nov., 11:19

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.