Правильный способ обработки маневрирования по страницам с помощью кнопок в ASP.NET MVC?

2

Я пишу приложение с ASP.NET MVC, где по разным причинам навигацию обрабатывают с помощью кнопок ввода HTML. Каковы наилучшие методы управления этой ситуацией?

  • Настройте форму на кнопках, где информация должна быть POSTED, и просто используйте JavaScript для перенаправления на кнопках, где информация не требуется сохранять

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

    <% using (Html.BeginForm())
       { %>
    <input type="hidden" name="controller" value="1" />
    <input type="hidden" name="action" value="Location" />
    <input id="BackButton" type="submit" value="Go Back" />
    <% } %>
    
  • Что-то, о чем я не думал здесь

Теги:
navigation
asp.net-mvc

4 ответа

2
Лучший ответ
  • Javascript, вероятно, лучший выбор.

Использование мини-формы кажется очень тяжелой. Вы в основном хотите использовать кнопку в качестве ссылки (я бы серьезно посмотрел на то, почему вы нарушаете это самое основное соглашение в Интернете: кнопки post/modify и ссылки перемещаются), поэтому чем более базовым вы можете сделать это, тем лучше.

  • 0
    Я согласен с битом "нарушение веб-соглашения", но ...... что произойдет, если нет javascript? В наши дни это полностью зависит от сайта и целевой аудитории, но это все еще вызывает озабоченность. Одно дело лишить пользователя какой-то лишней кричащей вещи, но лишение пользователя возможности навигации совершенно другое.
3

Здесь вы можете найти довольно хорошую статью о том, как стилизовать якорный тег как кнопку

  • 1
    Хорошая ссылка. Также хорошо объясняет, почему следует избегать стилей кнопок по умолчанию.
1

3: Настройте некоторые якорные метки, чтобы они выглядели как кнопки.

В недавнем приложении мы внедрили опцию 1. Клиенту понравились кнопки "Отмена" на всех формах (...), поэтому мы просто запустили событие click на входах reset, которые сделали:

history.go(-1); return false;
  • 0
    Это вообще возможно? Часто кнопки отображаются в ОС как родные кнопки ...
  • 0
    Если вы оставите стиль кнопки по умолчанию, это может быть проблематично, но я, как правило, немного настраиваю стили.
0

Используйте пустые теги <a href="#"> и Javascript/jQuery. Например:

В представлении:

<script src="<%= Url.Content("~/Content/navigation.js") %>" type="text/javascript"></script>
...
<a id="back" href="#">Back</a>
<a id="next" href="#">Next</a>

<script type='text/javascript'>
    var back_href="<%= Url.Action("...") %>";
    var next_href="<%= Url.Action("...") %>";
</script>

Где-то в navigation.js:

$(document).ready(function() {
    $('a#back').attr('href', back_href);
    $('a#next').attr('href', next_href);
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню