如何解决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,'<');
});
});
</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 举报,一经查实,本站将立刻删除。