C# 在用户按Enter/Return键时调用服务器端操作
已更新 因为我很快就得到了你对这个问题非常有用的答案,我重新考虑了这个问题。我想我需要把它分解成两个小要求,所以我正在更新这个问题 在我的ASP.NET MVC 4应用程序中,当用户按下键盘上的enter键,而焦点位于特定的文本框中时,我需要: 场景1:必须调用相应的服务器端操作。如果当光标位于不同的文本框中时用户按下enter键,则必须调用另一个操作 场景2:如果用户按下键盘上的Enter键,而焦点位于当前页面上某个表单中的任何文本框中,则该表单必须与所有表单数据(HttpPost)一起发回控制器上的操作,如该C# 在用户按Enter/Return键时调用服务器端操作,c#,javascript,jquery,asp.net-mvc,asp.net-mvc-4,C#,Javascript,Jquery,Asp.net Mvc,Asp.net Mvc 4,已更新 因为我很快就得到了你对这个问题非常有用的答案,我重新考虑了这个问题。我想我需要把它分解成两个小要求,所以我正在更新这个问题 在我的ASP.NET MVC 4应用程序中,当用户按下键盘上的enter键,而焦点位于特定的文本框中时,我需要: 场景1:必须调用相应的服务器端操作。如果当光标位于不同的文本框中时用户按下enter键,则必须调用另一个操作 场景2:如果用户按下键盘上的Enter键,而焦点位于当前页面上某个表单中的任何文本框中,则该表单必须与所有表单数据(HttpPost)一起发回控
的操作属性中所指定
如何完成这两个场景?您可以使用javascript,或者简单地将每个输入放在不同的
中,并在其中添加一个按钮type=“submit”。您可以使用javascript,或者简单地将每个输入放在不同的
中,并在其中添加一个按钮type=“submit”
如果要截取提交的表单,可以使用。这样,页面上可以有多个表单,当表单提交时,它将对表单的action属性中指定的action方法进行AJAX调用。然后,您将能够在ajax调用的“success”回调中处理响应
如果要截取提交的表单,可以使用。这样,页面上可以有多个表单,当表单提交时,它将对表单的action属性中指定的action方法进行AJAX调用。然后,您将能够在ajax调用的“success”回调中处理响应。您可以按以下方式执行:
$('#idOfTextbox').keypress(function(e) {
if(e.which == 13) {
$.ajax({
url: './savedata',//Your method name, that is to be called
type: 'POST',
contentType: 'application/json',//Type of data you want to post
data: JSON.stringify({ obj: sampleobject }),//object of post-object i.e. data being posted
success: function(result) {
//Logic to handle success
}
error: function(){}//Handle error here
}
});
我举了一个例子来调用一个方法,该方法位于您当前正在使用其视图的同一控制器上。您可以按如下方式执行:
$('#idOfTextbox').keypress(function(e) {
if(e.which == 13) {
$.ajax({
url: './savedata',//Your method name, that is to be called
type: 'POST',
contentType: 'application/json',//Type of data you want to post
data: JSON.stringify({ obj: sampleobject }),//object of post-object i.e. data being posted
success: function(result) {
//Logic to handle success
}
error: function(){}//Handle error here
}
});
我举了一个例子来调用一个方法,该方法位于您当前正在使用其视图的同一控制器上。谢谢。如何从这里调用控制器上的服务器端MVC操作?$.ajax({url:'/PathToYourActionMethod',success:function(data){});非常感谢。如果我希望对所有文本框调用相同的操作,我假设我将用某个CSS类名或其他东西替换#idOfTextBox?是的。在本例中,我通过一个id引用textbox。要将其附加到多个textbox,您应该使用一个通用类名。非常感谢您的帮助。我重新考虑了这个问题,并将其分为两种情况。您已经回答了第一个场景。如果你能帮我做第二个,那会帮我很大的忙。谢谢。如何从这里调用控制器上的服务器端MVC操作?$.ajax({url:'/PathToYourActionMethod',success:function(data){});非常感谢。如果我希望对所有文本框调用相同的操作,我假设我将用某个CSS类名或其他东西替换#idOfTextBox?是的。在本例中,我通过一个id引用textbox。要将其附加到多个textbox,您应该使用一个通用类名。非常感谢您的帮助。我重新考虑了这个问题,并将其分为两种情况。您已经回答了第一个场景。如果你能帮我做第二个,那将对我有很大帮助。这很有趣。非常感谢。我从未想过这一点。:-)那很有趣。非常感谢。我从未想过这一点。:-)您想将任何值传递给正在调用的操作吗?是的,基本上,我想发回特定控制器上的特定操作。您想将任何值传递给正在调用的操作吗?是的,基本上,我想发回特定控制器上的特定操作。非常感谢,Bhushan.JSON.stringify是jQuery方法还是服务器端MVC方法?@WaterCoolerv2:…这是jQuery方法…而且,jQuery中使用的MVC中的任何方法都有@prepend。。。!!这就是我所怀疑的。jQuery如何识别我要发布的数据。我要发布的数据将具有来自我的模型/视图模型的服务器端表示。我没有客户端对象。你是说我必须先在客户端创建一个对象,然后调用stringify对其进行序列化?@WaterCoolerv2:obj in stringify method应该是你将数据发布到的方法的参数……否则它就不起作用了……非常感谢你,Bhushan.JSON.stringify是jQuery方法还是服务器端MVC方法?@WaterCoolerv2:…这是jQuery方法…而且,jQuery中使用的MVC中的任何方法都有@prepend。。。!!这就是我所怀疑的。jQuery如何识别我要发布的数据。我要发布的数据将具有来自我的模型/视图模型的服务器端表示。我没有客户端对象。你是说我必须先在客户端创建一个对象,然后调用stringify将其序列化?@WaterCoolerv2:obj在stringify方法中应该是你将数据发布到的方法的参数……否则它就不起作用了。。。
$('#idOfTextbox').keypress(function(e) {
if(e.which == 13) {
$.ajax({
url: './savedata',//Your method name, that is to be called
type: 'POST',
contentType: 'application/json',//Type of data you want to post
data: JSON.stringify({ obj: sampleobject }),//object of post-object i.e. data being posted
success: function(result) {
//Logic to handle success
}
error: function(){}//Handle error here
}
});