Задать вопрос
@Matsun

Как отправить пользователя на маршрут с якорем?

В представлении страницы со статьёй имеется форма

@using (Html.BeginForm("ShowOne", "Category"))
                {
                    <div class="inputFields">
                        <div class="fieldItem textField author">
                            <p class="fieldName">Ваше имя @Html.ValidationMessage("Author")</p>
                            @Html.TextBox("Author", "", new { placeholder = "Имя" })
                        </div>
                        
                        <div class="fieldItem textField email">
                            <p class="fieldName">Ваш email</p>
                            @Html.TextBox("Email", "", new { placeholder = "Email" } )
                        </div>
                        <div class="fieldItem areaField fulltext">
                            <p class="fieldName">Комментарий: @Html.ValidationMessage("FullText")</p>
                            @Html.TextArea("FullText", "", 5, 20, new { placeholder = "Текст комментария" })
                        </div>
                        <div class="buttons">
                            <input type="submit" value="Отправить" class="butSubmit submitComment" />
                            <input type="button" value="Отмена" class="clearSubmit clearComment" />
                        </div>
                            @Html.Hidden("ArticleId", Model.ArticleId)
                            @Html.Hidden("returnUrl", Request.Url.PathAndQuery)
                        </div>
                }


Вот контроллер
[HttpPost]
public ActionResult ShowOne(Comment comment, string returnUrl, int ArticleId = 0, int ParentID = 0)
        {
            if(ArticleId != 0)
            {
                Article one = service.Repository.GetPost(ArticleId);

                if (ModelState.IsValid)
                {
                    comment.DatePublication = DateTime.Now;

                    comment.Article = one;

                    comment.ParentId = ParentID;

                    service.Repository.SaveComment(comment);

                    TempData["message"] = string.Format("Выш комментарий добавлен");

                    return RedirectPermanent(returnUrl + "#leaveCommentTitle" ?? Url.Action("Index", "CategoryArticle"));
                }
                else
                {
                    return View("ShowOne", one);
                }
            }
            else
            {
                return View("Error");
            }
        }

Собственно проблема в том, что после того как человек добавляет комментрий он попадает на страницу

localhost:25895/articles/item-my-test-blog-url-2#leaveCommentTitle
с помощью редиректа
return RedirectPermanent(returnUrl + "#leaveCommentTitle" ?? Url.Action("Index", "CategoryArticle"));

однако если человек не заполняет обязательно поле, то он попадает на страницу
localhost:25895/articles/item-my-test-blog-url-2

как сделать так, чтобы у второго урла также был якорь #leaveCommentTitle
  • Вопрос задан
  • 290 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Newred
не заполняет обязательно поле

1. На странице проверять с помощью JS заполнено ли поле и не отправлять если не заполнено.
2. Или цепляться не к теме комментария, а к #Id
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы