Если вы не используете какой-либо моноширинный шрифт, например, currier new, вы не сможете предсказать, сколько пикселей потребуется. Но вы всегда можете оценить, 10 пикселей на символ или подобное. Тогда у некоторых пользователей есть большие шрифты, которые вы не можете обнаружить, и все выглядит неправильно ... Я предлагаю вам переосмыслить эту функцию с точки зрения UX или технических проблем!
Может быть, что-то вроде этого, с вспомогательным методом, который умножает длину строки на среднее количество пикселей на символ (10?):
<%= Html.TextBoxFor(m => m.STPData.ProjectName,
new { @class = "economicTextBox",
style="width:"+Helper.PixelsForString(m.STPData.ProjectName,10)+"px;",
disabled="disabled",
propertyName = "STPData.ProjectName",
onchange = "UpdateField(this);" })%>