Я пытаюсь создать несколько расширений HtmlHelper и столкнулся с небольшим препятствием, пытаясь заставить мои методы расширения использовать значения, определенные в ViewData.ModelState. Метод HtmlHelper.GetModelAttemptedValue() отмечен как внутренний и недоступен для моих методов расширения. Есть ли простая альтернатива в MVC?





Я не уверен, что вы здесь собираетесь. Разве вы не можете просто использовать ViewData.ModelState, доступный для HtmlHelper, и самостоятельно вызвать TryGetValue? Я понимаю, что это не СУХОЙ, но это кажется проще, чем пытаться вызвать трехстрочный метод в помощнике через отражение.
public static string MyHelper( this HtmlHelper helper, string modelKey)
{
ModelState modelState;
if (helper.ViewData.ModelState.TryGetValue( modelKey, out modelState))
{
string attemptedValue = modelState.AttemptedValue;
}
}