Я пишу приложение с 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" />
<% } %>
Что-то, о чем я не думал здесь
Использование мини-формы кажется очень тяжелой. Вы в основном хотите использовать кнопку в качестве ссылки (я бы серьезно посмотрел на то, почему вы нарушаете это самое основное соглашение в Интернете: кнопки post/modify и ссылки перемещаются), поэтому чем более базовым вы можете сделать это, тем лучше.
Здесь вы можете найти довольно хорошую статью о том, как стилизовать якорный тег как кнопку
3: Настройте некоторые якорные метки, чтобы они выглядели как кнопки.
В недавнем приложении мы внедрили опцию 1. Клиенту понравились кнопки "Отмена" на всех формах (...), поэтому мы просто запустили событие click на входах reset, которые сделали:
history.go(-1); return false;
Используйте пустые теги <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);
});