Как передать атрибут данных в @ Html.CheckBoxFor [duplicate]

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

public static string ToTrimmedString(this decimal target)
{
    string strValue = target.ToString(); //Get the stock string

    //If there is a decimal point present
    if (strValue.Contains("."))
    {
        //Remove all trailing zeros
        strValue = strValue.TrimEnd('0');

        //If all we are left with is a decimal point
        if (strValue.EndsWith(".")) //then remove it
            strValue = strValue.TrimEnd('.');
    }

    return strValue;
}

Вот и все, просто хотел бросить мои два цента.

96
задан Chris Chilvers 24 May 2010 в 15:34
поделиться

2 ответа

Используйте знак подчеркивания в имени атрибута данных, и он волшебным образом обработает его для вас, превратив его в дефис. Он знает, что вы хотите дефис, а не подчеркивание, поскольку подчеркивания недопустимы в именах атрибутов html.

<%= Html.TextBox("name", value, new { @data_foo = "bar"}) %>
175
ответ дан ED-209 22 August 2018 в 02:08
поделиться
  • 1
    +1 Просто спас меня от написания какого-то действительно уродливого кода. Благодаря! – Dan Solovay 4 April 2013 в 22:40
  • 2
    Я нашел подобную проблему в нескольких вопросах SO, и это лучший ответ. – user2780436 1 January 2015 в 21:44
  • 3
    Не могли бы вы добавить причину вашего выражения. подчеркивания недопустимы в html-атрибутах . По крайней мере, html 4.01 states : Значение атрибута может содержать только буквы (az и AZ), цифры (0-9), дефисы (ASCII-децимал 45), периоды (ASCII-децимал 46), подчеркивания (ASCII-децимал 95) и двоеточия (ASCII-децимал 58) , – surfmuggle 15 July 2015 в 19:12
  • 4
    @threeFourOneSixOneThree ваша цитата относится к значению атрибута, но в этом вопросе мы имеем в виду имена атрибутов. – ED-209 16 July 2015 в 08:40
  • 5
    @threeFourOneSixOneThree Я изменил конец своего ответа на «подчеркивания недействительны в именах атрибутов html» – ED-209 16 July 2015 в 08:42

Ответ, представленный в ActionLink htmlAttributes , предполагает использование символов подчеркивания вместо дефис. MVC.Net должен выделять дефисы вместо подчеркивания при отправке страницы в браузер.

18
ответ дан Community 22 August 2018 в 02:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: