ASP.NET MVC3 Получение автоматически сгенерированных идентификаторов элементов формы - PullRequest
0 голосов
/ 09 января 2012

Использование @Html.TextBoxFor(m => m.MyField) (обычно?) Приведет к <input id="MyField" name="MyField" type="text" value="" />, и если я хочу получить доступ к этому элементу в jquery, я делаю это следующим образом $("#MyField").Есть ли способ избежать ручного ввода идентификатора в селектор jquery?Мне кажется неуклюжим делать это таким образом, так как я пришел из классического фона asp.net, где вы могли бы получить идентификатор элемента, используя свойство ClientID.Поэтому, если средство визуализации изменило способ генерации идентификаторов, код автоматически обновляется.В приведенном выше примере, если я изменю MyField на MyNewField, компилятор напомнит мне изменить все строго типизированные ссылки, но ничто не напомнит мне изменить мой селектор jquery.

1 Ответ

0 голосов
/ 09 января 2012

Напишите простой метод, который получает свойство, возвращает его имя с отражением и использует его следующим образом:

static string GetVariableName<T>(Expression<Func<T>> expression)
{
    var body = expression.Body as MemberExpression;

    return body.Member.Name;
}

$('#' + @(GetVariableName(() => Model.MyField)))

Должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...