отправка формы с использованием гиперссылки вместо кнопки - PullRequest
2 голосов
/ 24 октября 2011

Я создал ссылку для удаления в виде бритвы asp.net mvc3 следующим образом:

 <td>
                @Html.ActionLink("Edit", "EditCategory", new { id = item.CategoryId }) |
                @Html.ActionLink("Details", "Details", new { id = item.CategoryId }) |

                @using (Html.BeginForm("Delete", "Admin"))
                {
                    @Html.Hidden("id", item.CategoryId)
                    <input type="submit" value="Delete" />
                }
            </td>

и создал метод действия следующим образом:

 [HttpPost]
        public ActionResult Delete(int Id)
        {

            Category category = repository.Categories().FirstOrDefault(c => c.CategoryId == Id);
            if (category != null)
            {
                repository.DeleteCategory(category);
                TempData["message"] = string.Format("{0} was deleted", category.CategoryName);
            }
            return RedirectToAction("Categories");
        }

Он работает нормально.но я хочу использовать гиперссылку для удаления, как я использую для редактирования и деталей.Как я могу заменить кнопку с actionlink.Я пробовал это, но это не происходит в ссылке «Удалить сообщение», и я получаю сообщение об ошибке «Не найдено».

Ответы [ 2 ]

4 голосов
/ 24 октября 2011

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

<input type="submit" value="delete" style="border: none; background: none; 
                                           text-decoration: underline; 
                                           cursor: pointer;"> 
2 голосов
/ 24 октября 2011

Будьте внимательны, чтобы не сделать ваши действия по удалению доступными через HTTP GET.Спецификация HTTP рекомендует использовать HTTP POST для деструктивных действий (например, удаления). Это не позволяет веб-сканерам выполнять их.

По умолчанию гиперссылки выдают HTTP GET.Если вы изменили действие «Удалить» на гиперссылку, убедитесь, что вы изменили его поведение (через JavaScript) для выдачи HTTP POST.Затем вы должны рассмотреть, что произойдет, если в браузере отключен JavaScript.

Другой подход, который вы можете рассмотреть, - [[сделать вашу кнопку Удалить похожей на гиперссылку с помощью стилей CSS [1]].

[1] http://www.xlevel.org.uk/post/How-to-style-a-HTML-Form-button-as-a-Hyperlink-using-CSS.aspx

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