在客户端处理文本输入
Processing textual inputs in the client side
. NET MVC 5和Razor视图引擎,是否有一种方法可以在将数据发布到服务器之前获得输入字段的值,处理它们,然后发送处理后的数据?
例如:@using (@Html.BeginForm("ViewPage", "Home", FormMethod.Post)) {
@Html.TextBox("Field1")
@Html.Hidden("Field2");
<input type="submit" id="HiddenButton" value="Submit" style="display:none" />
<input type="button" id="VisibleButton" value="Submit" />
}
和现在:
<script type="text/javascript">
document.ready(function() {
$("#VisibleButton").click(function() {
var Temp = $("#Field1").val()
@{
// C# Area
Processing the Temp, by for example calling an extension method and
assigning the new value to the Hidden Field
}
$("#HiddenButton").trigger("click")
})
})
</script>
我想这样做,因为我想在发送到服务器之前加密文本,并且我已经在c#中创建了我的加密方法。
这是可能的,但是处理应该在客户端使用javascript:
$("#VisibleButton").click(function() {
var Temp = $("#Field1").val();
// process Temp here using javascript
Temp = 'some new value';
// set the processed value back to the input field
$("#Field1").val(Temp);
$("form").submit();
});
如果出于某些原因希望在服务器上进行处理,可以将其作为AJAX请求发送到控制器操作:
$("#VisibleButton").click(function() {
var temp = $("#Field1").val();
$.ajax({
url: '@Url.Action("SomeAction")',
data: { value: temp },
success: function(result) {
$("#Field1").val(result);
$("form").submit();
}
});
});
和控制器动作:
public ActionResult SomeAction(string value)
{
// do your processing here
value = "some new value";
return Json(value);
}
你不能这么做…
这里没有魔法,因为JS代码运行在客户端,而c#代码位于服务器端。
你不能使用c#来执行客户端验证。这是因为客户端验证在用户浏览器上运行,而用户浏览器只理解之前由服务器上的c#代码生成的JavaScript和Html。
就像Darin说的,如果你想在c#中执行验证,你必须在服务器端执行。为此,您必须执行ajax调用并在JavaScript中解释结果。
一种方法是按照Darin展示的方法来做。另一种是使用这里描述的MVC内置机制。相关文章:
- 尝试在PHP中回显输入文本时出现未定义的索引错误
- 使用模拟按键在输入框中自动输入文本
- 如何添加类,同时开始在文本字段中输入文本
- JQuery使用相同的功能自动完成各种输入文本
- 如何设置输入文本框jquery的值
- 输入文本框为空时的阻止按钮asp.网络表单
- 基于单选框更新页眉,选中并选择输入文本
- 将输入文本与某个选项的值相匹配并自动选择
- 如何在 JavaScript 中创建输入文本框
- 如何使用纯Javascript观看输入文本框
- 需要使用javascript获取输入文本,然后将其添加到句子中
- php&js-将电子邮件添加到输入文本中
- 动态启用/禁用来自控制器的输入文本
- .val()不返回输入文本
- 从确认框中预填充输入文本框
- 如何使用JavaScript解析输入文本中给定的数据
- 添加/删除/更改输入文本的部分值
- 根据输入文本按元素排序,AngularJS
- 如何将(a*b)两个输入文本值相乘,并在javascript中随文本变化动态显示
- 如何从Tr重复的输入文本中获取值