There's several ways to do this.
Either:
- Change the regional settings for the user running your web application
- Use the correct CultureInfo object when formatting
- Set the default CultureInfo object on the current thread
- Escape the slashes
To provide a CultureInfo object when formatting:
@Html.DisplayFor(modelItem => item.EndDate.ToString("dd/MM/yyyy", CultureInfo.GetCulture("en-US")))
To set the default CultureInfo object:
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCulture("en-US");
To escape the slashes, use single quotes:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd'/'MM'/'yyyy}")]
Note that all the code ends up in DateTime.ToString(string) or one of its overloads, so that's the place to look for clues to this.