微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MVC 在表单提交期间更改来自 Javascript 的输入值

如何解决MVC 在表单提交期间更改来自 Javascript 的输入值

需要在表单提交后转到控制器之前更改用户输入。下面的解决方案更改了值,但修改后的输入显示在从 JavaScript 替换后的 HTML 输入字段上。

需要替代方法来更改模型级别的值;因此,用户无法看到提供的输入正在发生变化。

<script>
$(document).ready(function () {    
    $("#submitButton").click(function (event) {
        var element = document.getElementById("RawHtml");
        var val = document.getElementById("RawHtml").value;
        document.getElementById("RawHtml").value = val.replace(/</g,'&lt;');
     });
});
</script>

@using (Html.BeginForm())
{
    <div class="field">
        @Html.LabelFor(model => model.Name)
        @Html.EditorFor(model => model.Name)
    </div>
    <div class="field">
        @Html.LabelFor(model => model.RawHtml)
        @Html.EditorFor(model => model.RawHtml)
    </div>
    <div>
        <input name="Submit" type="submit" id="submitButton" />
    </div>
}

解决方法

您可以尝试以下:

如果您不希望用户知道所提供的输入已更改然后传递,则在它击中控制器 ActionResult 时更改所提供的输入。

示例:

[POST]
public ActionResult Demo(ModelName model){
    string finalHtml= model.RawHtml.Replace("value to be replaced","replacement value for existing value");
    //further use finalHtml to store in DB
} 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。