以不引人注目的真实模式树立全球化文化

时间:2015-11-28 06:37:55

标签: validation asp.net-mvc-4 http-post unobtrusive-validation

在我的Asp.net MVC应用程序中,我需要将DATE TIME模型字段文化设置为" it-IT"。通常情况下,这将需要系统文化,但要改变这种不确定性,我将UI文化设置为" it-IT"

我在我的应用程序中尝试了以下代码来更改文化

<system.web>
 <globalization uiCulture="it-IT" culture="it-IT" />

但是如果UnobtrusiveJavaScriptEnabled仅设置为false,则它可以正常工作。但在我的应用程序中,我必须将此值保持为真实。请参阅以下内容:

 <add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>

你能否请任何人建议我以不引人注目的真实模式设定全球化文化

我的观点部分:

@Html.EJ().DatePickerFor(x => x.Date).DateFormat("dd/MM/yyyy").Locale("it-IT")

控制器:

        public ActionResult Index()
    {

        var model = new maskEdit();
        model.Date = DateTime.Now;
        return View(model);

    }
    [HttpPost]

    public ActionResult Index(maskEdit model)
    {           

        return View(model);
    }

型号:

public class maskEdit
{

    [Display(Name ="DATE CULTURE")]
    [DataType(DataType.Date)]
    public DateTime Date{ get; set; }
}

1 个答案:

答案 0 :(得分:2)

我找到了解决方法。在我的应用程序中,我添加了jquery不显眼的验证。所以在验证中,格式为“dd / mm / yyyy”的日期被视为无效日期。要提交格式为“dd / mm / yyyy”的日期值,请参阅以下代码:

 $(document).ready(function () {
    $.culture = Globalize.culture("it-IT");
    $.validator.methods.date = function (value, element) {
                 return this.optional(element)
            || Globalize.parseDate(value, "dd/MM/yyyy", "it-IT")
            || Globalize.parseDate(value, "dd/MM/yyyy");
    }
});