Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / поведение TextBoxFor / 25 сообщений из 47, страница 1 из 2
29.10.2013, 11:19
    #38444625
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поведение TextBoxFor
никого не смущает поведение 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
29.10.2013, 11:35
    #38444651
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поведение TextBoxFor
У меня всё работает.
...
Рейтинг: 0 / 0
29.10.2013, 11:38
    #38444658
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поведение TextBoxFor
handmadeFromRuувидел что за вывод отвечаета брякпоинт втулить в этот метод можно?
...
Рейтинг: 0 / 0
29.10.2013, 11:39
    #38444660
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поведение TextBoxFor
Паганель,
неа. поставил степинг по сорсам, но упорно не заходит туда.
...
Рейтинг: 0 / 0
29.10.2013, 11:43
    #38444667
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поведение TextBoxFor
знач дрозофила нужна
...
Рейтинг: 0 / 0
29.10.2013, 11:48
    #38444678
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поведение TextBoxFor
блин сделал пустой проект и накидал с нуля и работает. нда. вопрос снимается. пошел искать проблему в проекте рабочем
...
Рейтинг: 0 / 0
29.10.2013, 11:58
    #38444697
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поведение TextBoxFor
воо
Код: 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
29.10.2013, 12:18
    #38444726
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поведение TextBoxFor
у меня вообще {0:dd.MM.yyyy} игнорирует, наверное потому что у меня mvc3 и я отстал от жизни
...
Рейтинг: 0 / 0
29.10.2013, 12:23
    #38444738
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поведение TextBoxFor
handmadeFromRuчерез раз выводится не так как надо. после первого поста, когда данные забираются из реквеста и снова не забиваются.
А где HttpPost?
...
Рейтинг: 0 / 0
29.10.2013, 12:27
    #38444748
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поведение TextBoxFor
МСУ,
забыл дописать при копирование, извиняюсь, но это сути не меняет. Почему вывод ведет по разному?
п.с. mvc 4
...
Рейтинг: 0 / 0
29.10.2013, 12:31
    #38444757
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поведение TextBoxFor
handmadeFromRu,

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

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

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

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

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

прэлестно

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

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

прэлестно

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

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

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

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

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

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

сразу нерабочий код всегда лучше, чем полу-рабочий. потому что потом всякие "а я запускал у меня все типа работало" не канают. сразу уволен.
...
Рейтинг: 0 / 0
29.10.2013, 13:15
    #38444865
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поведение TextBoxFor
МСУ я хз как у тебя работает)
пересмотрел исходники
Код: 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
29.10.2013, 13:31
    #38444915
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поведение TextBoxFor
hVosttты не прав. не профит. а забивание на доку с понтом "а уменя все работает и мен начахать чо там пишут полудикари" -- не круто. подскажу кейс при котором это НЕ РАБОТАЕТ.
Я прав, т.к. у меня это работает в любом случае.

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

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


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