Как у вас есть несколько форм и отправить только по одной в MVC 5 просмотра - PullRequest
0 голосов
/ 11 октября 2019

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

Использование вспомогательных функций ajax, чтобы обойти это, но это не сработало так, как я хотел.

Ниже приведены некоторые фрагменты кода здесь - полный.


            Html.BeginForm("Create", "Comments", FormMethod.Post, new { @class = "form-control" });
            {
                @Html.AntiForgeryToken()
                @Html.Hidden("BlogPostId", Model.Id);
                <div class="row">
                    <div class="col-12">
                        @Html.Editor("Content", new { htmlAttributes = new { @id = "richTextEditor", @class = "form-control textarea", @placeholder = "Enter comment here.", @rows = 5, @cols = 10 } })
                    </div>
                </div>
                <div class="row" style="padding-top:2%">
                    <div class="col-2">
                        <button type="submit" class="btn btn-info waves-effect waves-light m-r-10">Submit</button>
                    </div>
                </div>
            }
@using (Html.BeginForm("Edit", "Comments", FormMethod.Post, new { @class = "form-control" }))
                                            {
                                                @Html.AntiForgeryToken()
                                                @Html.Hidden("Id", comment.Id);
                                                @Html.Hidden("BlogPostId", comment.BlogPostId);
                                                @Html.Hidden("AuthorId", comment.AuthorId);
                                                @Html.Hidden("CreateDate", comment.CreateDate);
                                                @Html.Hidden("UpdateDate", comment.UpdateDate);
                                            <div class="row">
                                                <div class="col-12">
                                                    @Html.Editor("UpdateReason", new { htmlAttributes = new { @class = "form-control", @placeholder = "Enter comment here.", @rows = 5, @cols = 10 } })
                                                </div>
                                            </div>
                                            <div class="row">
                                                <div class="col-12">
                                                    @Html.Editor("Content", new { htmlAttributes = new { @id = "richTextCommentEditor", @class = "form-control textarea", @placeholder = "Enter comment here.", @rows = 5, @cols = 10 } })
                                                </div>
                                            </div>
                                            <div class="row" style="padding-top:2%">
                                                <div class="col-2">
                                                    <button type="submit" class="btn btn-info waves-effect waves-light m-r-10">Submit</button>
                                                </div>
                                            </div>
                                        }

Я не получаю никаких ошибок, я просто вызываю действие для создания комментария вместо действия, которое ДОЛЖНА быть выполнена.

1 Ответ

0 голосов
/ 11 октября 2019

Ваши формы не будут знать, какие действия вы пытаетесь отправить, если вы не определите действие в теге формы:

<form action="/edit">
</form>

Или, в вашем случае, определите его в разделе атрибута html:

@using (Html.BeginForm("Edit", "Comments", FormMethod.Post, new { @class = "form-control", action = "/edit" })

Если вы не определили определенное действие в теге формы, форма будет предполагать, что вы просто выполняете постбэк на самой странице. Вы также можете определить действие для самой кнопки, используя:

<button type="submit" class="btn btn-info waves-effect waves-light m-r-10" formaction="/edit">Submit</button>

Подробнее о действиях и формах можно узнать в w3Schools: https://www.w3schools.com/tags/att_form_action.asp https://www.w3schools.com/tags/att_button_formaction.asp

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