Это еще одна вариация того, что я видел выше. В моем случае мне нужно сохранить все значащие цифры справа от десятичной точки, что означает падение всех нулей после самой значащей цифры. Просто подумал, что было бы приятно поделиться. Я не могу ручаться за эффективность этого, хотя, но когда вы пытаетесь достичь эстетики, вы уже почти прокляты неэффективностью.
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;
}
Вот и все, просто хотел бросить мои два цента.
Используйте знак подчеркивания в имени атрибута данных, и он волшебным образом обработает его для вас, превратив его в дефис. Он знает, что вы хотите дефис, а не подчеркивание, поскольку подчеркивания недопустимы в именах атрибутов html.
<%= Html.TextBox("name", value, new { @data_foo = "bar"}) %>
Ответ, представленный в ActionLink htmlAttributes , предполагает использование символов подчеркивания вместо дефис. MVC.Net должен выделять дефисы вместо подчеркивания при отправке страницы в браузер.