MVC问题与简单的回发

本文关键字:简单 问题 MVC | 更新日期: 2023-09-27 18:06:37

这里有点奇怪:下面的razor语法呈现了一个简单的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 />
}

编辑:这个视图生成的结果标记…

<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>

MVC问题与简单的回发

未提交此表单的唯一原因是脚本干扰了该过程。可能是验证脚本。

我注意到Message字段是必需的。您是否为该字段提供了值?没有任何验证错误信息吗?

如果验证没问题,我建议有选择地从页面中删除所有脚本,看看会发生什么。如果删除一个脚本导致您的表单工作,您知道这是问题的根源。

我明白了…这是隐藏的领域……它们是必需的,但在回发期间由服务器填充,因此自动验证防止在服务器能够填充字段之前回发客户端…

解决方案:不要在MVC表单中添加空的必填字段或关闭验证(这不是一个好主意)