以不引人注目的真实模式设置全球化文化

setting a globalization culture in unobtrusive true mode

在我的 Asp.net MVC 应用程序中,我需要将 DATE TIME 模型字段区域性设置为 "it-IT"。通常这将采用系统文化,但要更改我已将 UI 文化设置为 "it-IT"

的默认文化

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

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

但仅当 UnobtrusiveJavaScriptEnabled 设置为 false 时它才有效。但是在我的应用程序中,我必须将这个值本身保持为 true 。参考如下:

 <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; }
}

我找到了解决方案。在我的应用程序中,我添加了 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");
    }
});