ASP.Net MVC model binding - how to change date format?

后端 未结 3 700
长发绾君心
长发绾君心 2021-01-02 19:10

I have this application, and the default date format must be dd/MM/yyyy (the language is Brazilian Portuguese).

I already had set culture and UI culture

相关标签:
3条回答
  • 2021-01-02 19:28

    Try this on your property in the view model:

    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
    
    0 讨论(0)
  • 2021-01-02 19:30

    I found what happended. My form was posting via GET method, and the MVC just uses the culture for an action parameter when it's passed in the RouteData or by the form via POST method.

    I just changed the form to POST method and it worked.

    0 讨论(0)
  • 2021-01-02 19:43

    I'm pretty sure the issue is a lack of a DateTimeFormat on your DateTime types.

    <input type="text" name="DateProperty" id="DateProperty"
           value="@(Model.DateProperty.Value.ToString("d",
                 System.Threading.Thread.CurrentThread.CurrentUICulture.DateTimeFormat))" />
    

    EDIT**

    Another thing you want to be sure of is that the "name" property of your input element matches what you're passing into your action. If it doesn't null will appear on POST action every time.

         [HttpPost]
         public ActionResult DoStuff(string dateParam)
         {
           return RedirectToAction("Home","Index", new { });
         }
    

    "dateParam" Should match the name property here.

    <input id="dateParam" name="dateParam" value="10/10/2010" />
    
    0 讨论(0)
提交回复
热议问题