powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / поведение TextBoxFor
47 сообщений из 47, показаны все 2 страниц
поведение TextBoxFor
    #38444625
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
никого не смущает поведение TextBoxFor для поля даты?
Код: c#
1.
@Html.TextBoxFor(x => x.SomeFieldDateTime, "{0:dd.MM.yyyy}"))


ожидал к примеру 29.10.2013, а вижу 10/29/2013 + часы минуты секунды.
пошерстя исходники увидел что за вывод отвечает
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 internal static string FormatValueInternal(object value, string format)
        {
            if (value == null)
            {
                return String.Empty;
            }

            if (String.IsNullOrEmpty(format))
            {
                return Convert.ToString(value, CultureInfo.CurrentCulture);
            }
            else
            {
                return String.Format(CultureInfo.CurrentCulture, format, value);
            }
        }


и если указать формат вывода вроде как бы и должно быть то что хочется. Но нет. Может кто смотрел еще исходники и может объяснить поведение такое и я что то упустил?
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38444651
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня всё работает.
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38444658
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRuувидел что за вывод отвечаета брякпоинт втулить в этот метод можно?
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38444660
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паганель,
неа. поставил степинг по сорсам, но упорно не заходит туда.
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38444667
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
знач дрозофила нужна
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38444678
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
блин сделал пустой проект и накидал с нуля и работает. нда. вопрос снимается. пошел искать проблему в проекте рабочем
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38444697
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
воо
Код: c#
1.
2.
3.
4.
5.
public class TestClass
    {
        public string Msg { get; set; }
        public DateTime? MyDate { get; set; }
    }


Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
@model testDateTime.Models.TestClass

@{
    ViewBag.Title = "title";
}

<h2>title</h2>

@using (Html.BeginForm("IndexPost", "Home", FormMethod.Post))
{
    @Html.TextBoxFor(x => x.Msg)
    

    @Html.TextBoxFor(x => x.MyDate, "{0:dd.MM.yyyy}")
    

    <input type="submit" value="Do" />
}



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
public class HomeController : Controller
    {
        public ActionResult Index(TestClass model)
        {
            if (model.MyDate == null)
                model.MyDate = DateTime.Now;

            if (model.Msg == null)
                model.Msg = "gdfgdgdg";

            return View(model);

        }

        public ActionResult IndexPost(TestClass model)
        {
            return RedirectToAction("Index", model);
        }
    }


через раз выводится не так как надо. после первого поста, когда данные забираются из реквеста и снова не забиваются.
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38444726
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня вообще {0:dd.MM.yyyy} игнорирует, наверное потому что у меня mvc3 и я отстал от жизни
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38444738
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRuчерез раз выводится не так как надо. после первого поста, когда данные забираются из реквеста и снова не забиваются.
А где HttpPost?
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38444748
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,
забыл дописать при копирование, извиняюсь, но это сути не меняет. Почему вывод ведет по разному?
п.с. mvc 4
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38444757
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRu,

а вы почитали внимательно документацию? :)

MSDN format
Тип: System.String
Строка, которая используется для форматирования ввода .

для форматирования вывода в строке ввода используются аттрибуты модели.
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38444761
Zoria
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я только знаю что post и get параметры средой по-разному форматируются.
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38444764
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRu,

вот почитайте, что типа пишут ))

http://stackoverflow.com/questions/2001756/asp-net-mvc-displayformat
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38444770
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще раз, у меня всё отлично работает :)
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38444772
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,
да читал, и пробовал EditorFor, но не работает это во-первых , во-вторых у если есть перегрузка в TextBoxFor с указанием формата так почему бы и нет? причём если поглядеть сорсы, то все ок должно быть
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38444775
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЕще раз, у меня всё отлично работает :)

прэлестно

но даже если ничего и не запускать, достаточно глянуть доку. это формат ввода. а ручных дел мастер хочет вывод.
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38444779
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRuhVostt,
да читал, и пробовал EditorFor, но не работает это во-первых , во-вторых у если есть перегрузка в TextBoxFor с указанием формата так почему бы и нет? причём если поглядеть сорсы, то все ок должно быть

за вывод отвечает так то viewdata.templateinfo.formattedmodelvalue
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38444784
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
черт реально упустил инфу про format, спасибо.
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38444787
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМСУЕще раз, у меня всё отлично работает :)

прэлестно

но даже если ничего и не запускать, достаточно глянуть доку. это формат ввода. а ручных дел мастер хочет вывод.

Какой "ввод"? Ты о чём? Речь о значении внутри контрола input.
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38444790
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRu,

не знаю, если это вопрос не такой уж принципиальный (заставить работать TextBorFor как хочется), проще в папке Shred/EditorTemplates состряпать нужный темплейт под тип. так будет железно. ну и красивые пикеры прикрутить можно в любой момент.
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38444797
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

никакого "контрола input" не существует. это всё сказки. поговаривают, что дескать, там есть какой-то хэтэмээль. но это всё враньё
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38444822
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМСУ, никакого "контрола input" не существует. это всё сказки. поговаривают, что дескать, там есть какой-то хэтэмээль. но это всё враньё
Вообщем, считай как хочешь, сказки это, кривизна перевода, косячность описания параметра в доке, "ввод" или выхлоп - Html.TextBoxFor отлично рендерит input со значением требуемого формата :) Профит?
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38444858
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУhVosttМСУ, никакого "контрола input" не существует. это всё сказки. поговаривают, что дескать, там есть какой-то хэтэмээль. но это всё враньё
Вообщем, считай как хочешь, сказки это, кривизна перевода, косячность описания параметра в доке, "ввод" или выхлоп - Html.TextBoxFor отлично рендерит input со значением требуемого формата :) Профит?

ты не прав. не профит. а забивание на доку с понтом "а уменя все работает и мен начахать чо там пишут полудикари" -- не круто. подскажу кейс при котором это НЕ РАБОТАЕТ.

если указать формат к примеру вот такой "{0:D}", то первый вывод будет ожидаемый. но если ввести в инпут "01.01.0001", то после сабмита в инпуте будет именно это значение -- уже в другом формате . так что в топку. делать надо сразу по уму.

сразу нерабочий код всегда лучше, чем полу-рабочий. потому что потом всякие "а я запускал у меня все типа работало" не канают. сразу уволен.
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38444865
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ я хз как у тебя работает)
пересмотрел исходники
Код: c#
1.
2.
3.
4.
5.
вот код switch который рисует в TextBox
 default:
                    string attemptedValue = (string)htmlHelper.GetModelStateValue(fullName, typeof(string));
                    tagBuilder.MergeAttribute("value", attemptedValue ?? ((useViewData) ? htmlHelper.EvalString(fullName, format) : valueParameter), isExplicitValue);
                    break;



Код: c#
1.
string valueParameter = htmlHelper.FormatValue(value, format);


по указанному формату он берет если тока attemptedValue null т.ке. useViewData для TextBox всегда false. А при формирование attemptedValue указанный формат не учитывается. и после Post GetModelStateValue делает свою магию.
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38444915
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttты не прав. не профит. а забивание на доку с понтом "а уменя все работает и мен начахать чо там пишут полудикари" -- не круто. подскажу кейс при котором это НЕ РАБОТАЕТ.
Я прав, т.к. у меня это работает в любом случае.

hVosttесли указать формат к примеру вот такой "{0:D}", то первый вывод будет ожидаемый. но если ввести в инпут "01.01.0001", то после сабмита в инпуте будет именно это значение -- уже в другом формате . так что в топку. делать надо сразу по уму.
{0:D} тоже отлично работает, не фантазируй

hVosttсразу нерабочий код всегда лучше, чем полу-рабочий. потому что потом всякие "а я запускал у меня все типа работало" не канают. сразу уволен.
Не торопи гусей по поводу нерабочего кода.
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38444935
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

У тебя наверное на компе локаль установлена правильно. :)
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38444942
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeМСУ, У тебя наверное на компе локаль установлена правильно. :)
Это как? :)
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38444954
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

ахха.... всё! я знаю в чём трабла, почему у тебя работает, а у handmadeFromRu нет

потому что у тебя MVC 4, а у автора чего-то-там поменьше ))

т.е. эта "проблема" решена только в MVC 4.

но, я бы вообще эту функциональность использовать никак не стал, особенно с пикерами, принимающих определенный формат. свой темплейт -- железное решение.

хотя у меня на тестовом проекте тоже TextBoxFor всегда форматит первый вывод (но плюёт на остальные).
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38444960
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRumvc 4
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38444969
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПаганельhandmadeFromRumvc 4

точно. не заметил.... гугление показывает изрядную периодичность проблем у народа с этим форматом инпута.

и как бы железное решение [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")] + EditorFor.

ещё...

Html.TextBoxFor(model => model.Date, new { value = Model.Date.ToString("dd.MM.yyyy")

вообще, ни разу с такой проблемой не сталкивался. надо разобраться
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38444979
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в общем... как ни крути, но МСУ все-таки прав. должно работать.
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38445000
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всем спасибо. буду искать почему у меня не работает. проект начинался на mvc3 и потом апался на mvc4 руками, возможно что то не докрутили тогда
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38445017
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttв общем... как ни крути, но МСУ все-таки прав. должно работать.
hVostt, МСУ всегда прав. Прошу это запомнить или записать на бумажке :)
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38445025
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRuвсем спасибо. буду искать почему у меня не работает. проект начинался на mvc3 и потом апался на mvc4 руками, возможно что то не докрутили тогда

апайте сразу на MVC 5. зарелизило его тут, нехило :) по крайне мере к апгрейду есть вменяемый туториал, не то што с 3 на 4.
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38445035
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУhVosttв общем... как ни крути, но МСУ все-таки прав. должно работать.
hVostt, МСУ всегда прав. Прошу это запомнить или записать на бумажке :)
1. МСУ всегда прав.
2. Если не прав, см. п.1.
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38445048
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSerge1. МСУ всегда прав.
2. Если не прав, см. п.1.

МСУ, перелогинься
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38445071
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злыдни
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38445079
Zoria
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
приболели они что-ли..
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38445946
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
черт побери даже на mvc5 тоже самое) в общем я самописным хелпером ) бог с ним
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38445948
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выложи проект в архиве.
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38445957
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38445958
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
там mvc4 на .net4
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38445962
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну и собственно, что я получаю
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38446044
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRu,

если вы сами могли заметить, после POST в строке присутствует:

http://localhost:16590/?Msg=gdfgdgdg&MyDate= 10%2F30%2F2013%2000%3A00%3A00

это Invariant-форматированное значение даты (получившееся в результате внутреннего GET-редиректа), оно-то и отображается в поле. фреймворк не будет его форматировать, так как метод Index считает, что именно это значение вы ввели в поле. т.е. все работает правильно и как надо.
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38446046
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRu,

форматирование работает только при условии пустой модели:

1. YourActionMethod () << нет модели (input)
...
return View(model) << ваша модель значений (output)
...
видим форматированное значение по вашему формату

2. YourActionMethod (YourModel model) << есть модель (input)
...
return View(model) << модель значений (output) + контекст формы (реально введенные значения полей)
...
видим именно ту билеберду, что ввели в инпут, даже если это мало похоже на дату

это типа стандартный подход в веб при работе с формами. если форма не валидна и действие вернуло форму с сообщениями об ошибках на повторную правку, все значения всех полей должны быть именно такими, как вы их вводили (не переформатированные).
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38446053
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRu,

ну и последнее. чтоб до конца донести мысль.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
public class HomeController : Controller
    {
        public ActionResult Index(TestClass model)
        {
            if (model.MyDate == null)
                model.MyDate = DateTime.Now;

            if (model.Msg == null)
                model.Msg = "gdfgdgdg";

            return View(model);

        }

        public ActionResult IndexPost(TestClass model)
        {
            var myDate = model.MyDate.HasValue ? model.MyDate.Value.ToString("dd.MM.yyyy") : null;
            return RedirectToAction("Index", new { model.Msg, myDate } );
        }

    }



этот кусок решает вашу "проблемку"
...
Рейтинг: 0 / 0
поведение TextBoxFor
    #38446122
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо hVostt, да я понял почему. Просто после слов мол в mvc4 и выше решено хотел поэкспериментировать, да и МСУ говорит что все работает, думал что косяк где то)
...
Рейтинг: 0 / 0
47 сообщений из 47, показаны все 2 страниц
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / поведение TextBoxFor
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]