Создать уникальный идентификатор для каждого (частичного) представления - PullRequest
0 голосов
/ 12 декабря 2018

Я разрабатываю приложение MVC, и мои клиенты хотят иметь уникальный идентификатор на каждом экране.Он будет использовать этот идентификатор для ссылки в руководстве, которое он пишет.Я ищу общий способ, я не хочу жестко кодировать идентификатор для каждого отдельного представления / частичного.

Чтобы сделать его более сложным, частичные представления загружаются с использованием вызовов jQuery ajax иэти части также должны иметь уникальный идентификатор (поэтому в этом случае должен отображаться идентификатор части, а не идентификатор содержащей страницы).

Может кто-нибудь предложить мне общую стратегию для архивирования этого?Не беспокойтесь о формате идентификатора, это может быть что угодно (например, часть GUID)

Спасибо!

1 Ответ

0 голосов
/ 12 декабря 2018

Вы можете хэшировать частичное имя вида.Это даст вам хорошее последовательное (и уникальное) имя для каждого представления.Он будет рассчитываться при каждом отображении представления, если вы поместите его в свою разметку.

Что-то вроде:

@(((RazorView)ViewContext.View).ViewPath.GetHashCode())

Должно генерировать число на основе имени представления.Это немного грязно и хакерски, но я думаю, что послужит вашим целям.

Извинения.При тестировании вышесказанное работает только для родительского представления.Я бы поставил это в комментарии, но у меня пока недостаточно репутации.Тем не менее, это может привести вас на правильный путь.

По аналогичным линиям вы можете сделать подобное, основываясь на имени файла, используя:

@Path.GetFileNameWithoutExtension(Server.MapPath(VirtualPath)).GetHashCode()

Что в моем тестировании работает длячастичное представление ajax

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