Правильный способ обработки маневрирования по страницам с помощью кнопок в ASP.NET MVC? - PullRequest
2 голосов
/ 04 августа 2009

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

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

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

    <% 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" />
    <% } %>
    
  3. Что-то, о чем я здесь не думал

Ответы [ 4 ]

3 голосов
/ 04 августа 2009

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

2 голосов
/ 04 августа 2009
  1. Javascript, вероятно, ваш лучший выбор.

Использование мини-формы кажется очень сложным.По сути, вы хотите использовать кнопку в качестве ссылки (я бы серьезно подумал, почему вы нарушаете это основное веб-соглашение: кнопки «публиковать / изменять» и «переходить по ссылкам»), поэтому чем более простыми вы можете сделать его, тем лучше.

1 голос
/ 04 августа 2009

3: стиль некоторых тегов привязки должен выглядеть как кнопки.

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

history.go(-1); return false;
0 голосов
/ 04 августа 2009

Используйте пустые <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);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...