На мой взгляд, я вызываю Html.EditFor (), который запускает пользовательский шаблон-редактор для этого типа данных.Кроме того, я передаю некоторые метаданные (и эта часть мне не нравится):
<% ModelMetadata metaTitle = ModelMetadataProviders.Current.GetMetadataForProperty(null, Model.GetType(), "Title"); %>
<%: Html.EditorFor(x => Model.Title, new { metaData = metaTitle })%>
Переданный тип (свойство Title) имеет тип «Перевод».В пользовательском шаблоне редактора я должен прочитать переданные метаданные из viewData, чтобы использовать их:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Translation>" %>
// {...}
if (ViewData["metaData"] != null)
metaData = (ModelMetadata)ViewData["metaData"];
Есть ли какой-нибудь способ получить доступ к метаданным непосредственно в пользовательском шаблоне редактора?К сожалению, если я вызову следующее в редакторе-шаблоне, я не получу тот же объект метаданных (где, например, отсутствует информация, если свойство заголовка требуется или нет):
ModelMetadata metaData = ModelMetadataProviders.Current.GetMetadataForType(null, Model.GetType());
Я хотел бы избежать передачи объекта метаданных при каждом вызове ...
Спасибо за любые подсказки!sl3dg3