ASP.NET MVC 2-точечные возвратные ссылки на соответствующий вид - PullRequest
1 голос
/ 24 сентября 2010

Представления по умолчанию в скаффолдах, сгенерированные ASP.NET MVC 2, содержат ссылки, такие как:

<%: Html.ActionLink("Back to List", "Index") %>
<%: Html.ActionLink("Create New", "Create") %>

Эти ссылки идеально подходят, если я зашел на эту страницу из того же корня.Но, например, если у меня есть Заказы и Персоны, и я перехожу к /Orders/Edit/17 через /Persons/Orders/3, то «назад к списку» возвращает меня в корень заказов, а не в корень людей, куда я хочу перейти, потому что представление «Редактировать заказы»знает только о заказах.Это делает навигацию неудобной и нарушает поток.

Я хочу использовать один и тот же вид «Редактировать заказы» независимо от того, откуда я, но я не уверен, как передать эту информацию.

Я знаю, что можно передавать такие параметры, как /Orders/Edit/17?myparam=myvalue, но это ограничит мой выбор позже, если мне понадобится передать параметры, которые указывают порядок сортировки / фильтрации для сеток?

Какой предпочтительный способ передачиместо возврата / происхождения на мой взгляд, чтобы он мог правильно отображать ссылки?В противном случае, как я могу вызвать представление, отличное от контроллера?

РЕДАКТИРОВАТЬ:

Для чистого решения см. ЭТО ПОСТ

Ответы [ 2 ]

1 голос
/ 24 сентября 2010

Передача параметров через строку запроса на самом деле не ограничивает вас, если вы не используете одни и те же имена.Для строк запроса есть ограничение по размеру, но вы, вероятно, его не нажмете.Мне любопытно посмотреть, что ответят другие.

0 голосов
/ 24 сентября 2010

Эта функциональность выглядит как нечто, что должно было быть учтено во фреймворке; кажется довольно глупым указывать эти параметры, потому что вам придется делать это для каждого уровня навигации.

Почему? назад это то, что принадлежит в браузерах, наряду с историей. Какое-то время это так, почему фреймворк должен это обрабатывать?

Что вам нужно, это не норма.

Кроме того, вы несете ответственность за сохранение кода сухим. Вы можете определенно справиться с этим так, чтобы все ваши повторения - это имя функции, которую вы вызываете.

...