жэрах EditorFor DateTime MVC не адлюстроўваецца

Я спрабую адлюстраваць поле даты і часу знойдзенай базы дадзеных froma ў маёй брытве файл з наступным:

 @Html.EditorFor(model => model.RequestDate);

Я ведаю, што са 100% пэўнасцю RequestDate ня нулявая, як я вывучыў мадэль, якая была перададзена ў прадстаўленні, і гэта была дата з базы дадзеных. Тым не менш, дата і час тэкставага полі яшчэ адлюстроўвае «мм/дд/гггг». Я не ведаю, чаму яна не адлюстроўваць дату. Любыя ідэі? Дзякуй.

Вось мая мадэль:

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

<�Моцны> EDIT:

   [HttpGet]
    public ActionResult DispatchResponseIndex()
    {
        DispatchResponseModel model = new DispatchResponseModel();       


        //if the users session id isnt null then we know they have data related to this form
        object UserID = Session["TestID"];
        if (UserID == null)
        {
            return View(model); //default view               
        }
        else
        {
            UserID = Session["TestID"];
        }

        LoadDB(model, (Guid)UserID);
     //looking at the model here the RequestDate has a valid date of  //{5/24/2013 12:00:00 AM}

        return View(model); 
    }

<�Моцны> EDIT 2:

Калі я выкарыстоўваю @ Html.TextBox ( "Asdasd", Model.RequestDate); Затым ён будзе адлюстроўваць захаваную дату ў выглядзе радка, але мне трэба выкарыстоўваць ўбудаваны рэдактар ​​даты для тэкставага поля.

13
дадаць свае дзеянні, каб убачыць, што адбываецца
дададзена аўтар Jorge, крыніца
яно павінна быць дастаткова, але, праверыць у вашай мадэлі ў вас ёсць і тое, што вы дадалі анатацыі гэта можа быць нешта з DisplayFormat
дададзена аўтар Jorge, крыніца
Не маглі б вы расказаць крыху? Я выкарыстоўваю MVC на працягу тыдня. Я паставіў RequestDate ў маім кантролеры і перадаў яго ў поле зроку. Хіба гэта не дастаткова?
дададзена аўтар John Edwards, крыніца
Ды я манекен. Мабыць Chrome мае убудаваны ў адным, і я падумаў, што гэта MVC. На жаль :(
дададзена аўтар John Edwards, крыніца
Калі я не выдаліць [DATATYPE (DataType.Date)], то убудаваны ў даце тэкставага поля кропельніцы больш не працуе.
дададзена аўтар John Edwards, крыніца
У мяне ёсць рэдактар ​​шаблоны, не звязаныя з гэтым. Яны заказныя тыя І не змяняць EditorFor або TextBox або што-небудзь падобнае.
дададзена аўтар John Edwards, крыніца
А я думаю, што гэта можа быць таму, што яго дата і ня даты і часу /
дададзена аўтар John Edwards, крыніца
Alrght, я дадаў змены.
дададзена аўтар John Edwards, крыніца
Ці можаце вы паказаць нам, як вы перадаеце мадэль на ваш погляд? Проста, каб выключыць якія-небудзь памылкі, то
дададзена аўтар Kenneth, крыніца
дададзена аўтар David Tansey, крыніца
@JohnEdwards перамыкацца на @ Html.EditorFor!
дададзена аўтар Fals, крыніца
Што вы маеце на ўвазе ўбудаваны? Там будзе пабудаваны не настолькі, наколькі я ведаю, вы павінны выкарыстоўваць jQuery DatePicker ...
дададзена аўтар Marko, крыніца
Чаму вы пазначыць тып дадзеных, калі ваша ўласнасць ўжо тыпу DateTime? Я хацеў бы пачаць з выдалення [DATATYPE (DataType.Date)] ...
дададзена аўтар Marko, крыніца
Вы змянілі або стварылі свой уласны рэдактар ​​шаблонаў? Гэта можа мець нешта рабіць з ім
дададзена аўтар ShaneA, крыніца
Я пытаюся, таму што, калі TextBox() працуе, але EditorFor аленевая скура мне было цікава, калі там быў звычай EditorFor. было б ~ \ Views \ Shared \ EditorTemplates \ DateTime.cshtml
дададзена аўтар ShaneA, крыніца

6 адказы

Гэта, здаецца, выклікае надзелаў блытаніны і раздражняе мяне!

Калі вы карыстаецеся DataType.Date давядзецца ўсталяваць яго як

[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]

У гэтым фармаце, з выкарыстаннем дэфіса. Вы можаце паспрабаваць і дадаць тэг мовы, але Chrome праверыць лакальны фармат кампутары календара і фармат будзе заўсёды адмяняе ўсе. (Вы павінны перазапусціць Chrome цалкам, калі вы зменіце кампутары лакаль)


enter image description here

Калі Chrome адлюстроўвае Date Picker, ён будзе знаходзіцца ў правільнай лакалі, кампутараў лакалі. Яго добра? Але некаторы кантроль было б добра! Так ці інакш гэта працуе для мяне.

Такім чынам, пры загрузцы старонкі, дата будзе запаўняцца, калі ўстаноўлена, і карыстальнік можа выбраць новую дату.

enter image description here

19
дададзена
На жаль, гэта рашэнне таксама ўплывае Displayfor (), таму ўсе даты вашыя будуць адлюстроўвацца ў гэтым міжнародным фармаце.
дададзена аўтар Dave_cz, крыніца
Выдатна гэта працуе для мяне.
дададзена аўтар Bob the Builder, крыніца

<�Моцны> FINAL

Я ідыёт. Я паняцця не меў, Chrome меў выбар даты, што ён дададзены. Я думаў, што гэта было нешта пабудавалі ў MVC. Мне трэба выкарыстоўваць фактычны выбар даты JQuery. Дзякуй усім за ўсю інфармацыю.

13
дададзена
Яго HTML5 Datepicker які кожны браўзэр HTML5 рэалізуе сябе. Іншымі словамі для мабільных прылад і на працоўным стале таксама, так што яго родны да платформы і ўсталяваць лакаль правільна. Гэта мне спатрэбілася некаторы час, каб высветліць, што адбываецца з гэтым таксама. Але як толькі вы ведаеце, ваш бос.
дададзена аўтар ppumkin, крыніца
Вы не толькі адзін, толькі што здарылася са мной, і гэты каментар дапамог мне зразумець гэта.
дададзена аўтар Maxito, крыніца

Дадаць Фармат радкі ў вас мадэль

[Display(Name = "Time")]        
[DisplayFАБОmat(ApplyFАБОmatInEditMode = true, DataFАБОmatString = "{0:MM/dd/yyyy}")]
[DataType(DataType.Date)]
public DateTime RequestDate { get; set; }

<�Моцны> Абнаўленне

АБО

Вы можаце змяніць мадэль ўласцівасці DateTime у радок. і пераўтварыць аб'ект тыпу DateTime ў радок !!

АБО

АБО you can fАБОmat that value in your editАБО field .fАБО sample like

@Html.TextBoxFАБО(model => model.FromDate, "{0:d}")
3
дададзена
@ Html.TextBoxFor (мадэль => model.RequestDate, "{0: ХХ/дд/гггг}") усё яшчэ не адлюстроўвае выбару даты :(
дададзена аўтар John Edwards, крыніца
Хм, я спрабаваў @ Html.TextBoxFor (мадэль => model.RequestDate, «{0: d}» і адлюстроўвае дату, але больш няма даты выпадальнага для гэтага тэкставага поля.
дададзена аўтар John Edwards, крыніца
Так што вы хочаце мне сказаць, «грамадскае Струнны RequestDate {атрымаць, усталяваць;}»? Таму што выдаляе рэдактар ​​даты.
дададзена аўтар John Edwards, крыніца
Калі я гэта зраблю, не буду губляць рэдактар ​​даты JQuery?
дададзена аўтар John Edwards, крыніца
Я паспрабаваў гэта, і гэта яшчэ раз паказвае «мм/дд/гггг» .Ён становіцца вельмі своеасабліва. Я выкарыстоўваю [DataType (DataType.Date)], так што я магу мець убудаваны рэдактар ​​даты.
дададзена аўтар John Edwards, крыніца
Вы можаце змяніць мадэль ўласцівасці DateTime у радок. і пераўтварыць аб'ект тыпу DateTime ў радок !!
дададзена аўтар user1193035, крыніца
Не, пра гэта не праблема
дададзена аўтар user1193035, крыніца
Так. Ці вы можаце адфарматаваць гэта значэнне ў рэдактары поля .for ўзору як @ Html.TextBoxFor (мадэль => model.FromDate, "{0: d}")
дададзена аўтар user1193035, крыніца
Эй, што гэта фармат ўзору. Цяпер вы выкарыстоўваеце гэты {0: MM/DD/YYYY} замест {0: d}
дададзена аўтар user1193035, крыніца
Глядзіце гэты блог. Гэта тлумачыць больш падрабязна ў blogs.msdn.com/b/stuartleeks/archive/2011/01/25/… </а>
дададзена аўтар user1193035, крыніца

На самай справе, пакуль я не бачыў гэты пост, я не разумеў, што гэта «дата выбару» розніца паміж Chrome і IE, хоць я атрымаў макет ўзору старонкі з падручніка ў MVC ст.

Для тых, хто не ўсведамляе розніцы, як я рабіў раней, калі ласка, знайсці ніжэй параўнання:

enter image description here

0
дададзена

У мяне была дакладна такая ж праблема. Калі вы паглядзіце на HTTP-паведамленне, што збіраецца назад у кантролер і фармат даты ў POST гэта гггг-ММ-дд.

Я змяніў сваю анатацыю дадзеных на гэта, і яна працавала ... Толькі цяпер прадстаўленне спісу Індэкса паказвае фармат гггг-мм-дд. І Праўка паказвае мм/мм/гггг ў элеменце кіравання Datepicker?

Дададзены Мадэль Дата -

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")

ІМХО КОЖНЫ дадатак, якое я бачыў з 1980 года выкарыстоўваецца дата і час. Чаму гэта да гэтага часу бардак містэр MS?

0
дададзена

Вось як я гэта зрабіць ўнутры мадэлі

[Display(Name = "Effective Date")]
    [DataType(DataType.Date)]
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd-MMM-yyyy}")]
    public DateTime? Effectivedate 
    {
        get { return EffectivedateEdit; }
        set { EffectivedateEdit = value; EffectivedateEdit = value; } 
    }


    [DataType(DataType.Date)]
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")]
    public DateTime? EffectivedateEdit { get; set; }
0
дададзена