Проблема MVC с простой обратной передачей - PullRequest
1 голос
/ 24 августа 2011

Немного странный здесь: Следующий синтаксис бритвы визуализирует простой HTML-код с кнопкой отправки внизу.Когда я нажму на эту кнопку, я ожидаю, что постбэк будет выполнен, но по причине этого нет ... никаких идей ??

Да, кстати, это весь код для представления ...

@model FLM.PRL.EComms.Models.ReplySMS

@using (Html.BeginForm("Reply", "SMS", FormMethod.Post)) {
    <h2>Follow Up</h2>
    @Html.ValidationSummary(true)
    @Html.HiddenFor(model => Model.From)
    @Html.HiddenFor(model => Model.To)
    <div class="editor-label">Reply</div>
    <div class="editor-field">
        @Html.EditorFor(model => Model.Message)
        @Html.ValidationMessageFor(model => Model.Message)
    </div>
    <input type="submit" value="Reply" />
    <br />
}

EDIT: Результирующая разметка, сгенерированная этим представлением ...

<form action="/SMS/Reply" method="post">    
   <h2>Follow Up</h2>
<input data-val="true" data-val-required="The From field is required." id="From" name="From" type="hidden" value="xxxxxxxx" /><input data-val="true" data-val-required="The To field is required." id="To" name="To" type="hidden" value="xxxxxxx" />    <div class="editor-label">Reply</div>
    <div class="editor-field">
        <textarea class="text-box multi-line" id="Message" name="Message">
</textarea>
        <span class="field-validation-valid" data-valmsg-for="Message" data-valmsg-replace="true"></span>

    </div>
    <input id="submitReply" type="submit" value="Reply" />
    <br />
</form>

Ответы [ 2 ]

2 голосов
/ 24 августа 2011

Единственная причина, по которой эта форма не отправляется, - это скрипты, мешающие процессу.Может быть, сценарии проверки.

Я заметил, что поле сообщения обязательно.Вы указали значение для этого поля?У вас нет сообщения об ошибке валидации?

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

0 голосов
/ 24 августа 2011

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

решение: не добавлять пустые обязательные поля в форму MVC и не отключать проверку (не очень хорошая идея)

...