У меня есть проблема документально here и here и here и especially here где, в целях ASP.NET MVC4, функция HTML помощник @Html.HiddenFor(m => m.ID)
будет использовать «неправильные» данные и привести к повреждению данных.Предотвратить использование функции HiddenFor MVC в
Это серьезная проблема, и принятое «решение» - это просто знать об этом и разрабатывать вокруг него. Я думаю, что это плохое решение. (Кстати, вместо этого мы используем что-то вроде этого: <input type="hidden" value="@Model.ID" />
)
Каждые несколько месяцев я или коллега забуду и использую этот помощник html, и все ад разрывается, прежде чем мы отследим проблему ... еще раз.
Как я могу исключить использование этой функции, чтобы избежать ошибок в будущем?
- это не наш код, поэтому мы не можем пометить его [Obsolete]
- мы можем переопределить HtmlHelper
, но это очень много работы, чтобы устранить одну функцию
- я могу написать модульный тест, чтобы выбрать этот код с точки зрения? (и проверка отказа при обнаружении этого вызова)
- другие идеи?
Вы хотите инструмент анализа кода, такие как FxCop, и создать правило, которое будет работать как часть процесса сборки. Я сомневаюсь, что есть способ сделать это в компиляции, такой как атрибут. –