1

在我的Asp.net MVC應用程序中,我需要將DATE TIME模型字段區域設置爲「it-IT」。通常,這需要制度文化,而是要改變這種defatult我有套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; } 
} 
+0

不清楚你問的是什麼。你不會在不顯眼的真實模式下設置文化'如果你的意思是當你輸入日期'30/11/2015'時你得到客戶端驗證錯誤,那麼你需要修改jQuery驗證器(默認驗證基於'MM/dd/yyyy'格式 –

+0

是的,實際上我想回發「30/11/2015」日期值,但是在Chrome中它沒有激發「httppost」方法(在不顯眼的真實模式下),因爲驗證錯誤,所以我想在我的應用程序本身設置文化(有dd/mm/yyyy),這樣我就可以正確發佈「30/11/2015」。 –

+0

您需要修改'jQuery.validator' 。一種方法是使用[globalize]插件(https://github.com/jquery/globalize)。 –

回答

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