C# ajax选择要发布和搜索的表单输入
我有一个使用AJAX的表单。如何选择表单的哪些输入发送到代码隐藏(而不是整个表单)? 阿贾克斯 形式C# ajax选择要发布和搜索的表单输入,c#,javascript,jquery,ajax,asp.net-mvc,C#,Javascript,Jquery,Ajax,Asp.net Mvc,我有一个使用AJAX的表单。如何选择表单的哪些输入发送到代码隐藏(而不是整个表单)? 阿贾克斯 形式 @使用(Html.BeginForm()) { } 您可以在数据参数中指定它们: $.ajax({ type: 'POST', url: this.action, data: { field1: $('#field1').val(), field2: $('#field2').val() } }); 然后在c#中,您必须能够
@使用(Html.BeginForm())
{
}
您可以在数据
参数中指定它们:
$.ajax({
type: 'POST',
url: this.action,
data: {
field1: $('#field1').val(),
field2: $('#field2').val()
}
});
然后在c#中,您必须能够接受“type and”关键字作为webmethod中的参数您可以执行以下操作:
$form = $('form');
$.ajax({
type: 'POST',
url: this.action,
data: {
'name': $('fieldNameForName', $form).val(),
'age': $('fieldNameForAge', $form).val()
}
});
您可以编写一个接受表单选择器的函数,而不是使用serialize:
function getFormData(formSelector,toSend){
var formData = {};
for(var i in toSend){
var field = formSelector.find('input[name="'+toSend[i]+'"]');
if(field!==undefined) formData[toSend[i]] = field[0].val();
}
return formData;
}
用法:
$.ajax({
url: '/myurl'
data: getFormData($('#myForm'),['FirstName','LastName','FavoriteColor']),
type: 'POST'
});
您传入的数组应该是要发送的字段的名称属性(您也可以将其设置为id或其他任何内容,我只是想您已经设置了名称属性。我是否将field1:更改为它在代码隐藏(模型)中表示的属性名?实际上,在这段代码中,您需要将其更改为ID——对于属性名称,您希望选择器为
$('input[name=“field1”]”)
Hmm似乎没有击中我的模型属性。我没有在代码隐藏中得到任何值。很抱歉。我刚刚添加了我的表单。好吧,为什么在输入字段上有onclick
属性?非常奇怪的是,似乎没有击中我的模型属性。我没有在代码隐藏中得到任何值。非常奇怪的是吗esn似乎没有击中我的模型属性。我没有在代码后面得到任何值。非常奇怪的是,我似乎没有击中我的模型属性。我没有在代码后面得到任何值。是否可以添加您的HTML表单,以便我们可以帮助解决您在下面提到的问题?当然,我只是添加了我的表单。谢谢根据我们回答了您的问题“我如何选择要发送的表单输入[…]而不是整个表单?”上面的方法应该有效。是吗?没有达到控制器中的断点。model属性为null。它看起来应该有效,但事实并非如此。我建议用一些C代码片段开始一个专门针对C的新问题。我认为Scott Selby是在引用C,但您最初的问题主要针对JavaScript。
$form = $('form');
$.ajax({
type: 'POST',
url: this.action,
data: {
'name': $('fieldNameForName', $form).val(),
'age': $('fieldNameForAge', $form).val()
}
});
function getFormData(formSelector,toSend){
var formData = {};
for(var i in toSend){
var field = formSelector.find('input[name="'+toSend[i]+'"]');
if(field!==undefined) formData[toSend[i]] = field[0].val();
}
return formData;
}
$.ajax({
url: '/myurl'
data: getFormData($('#myForm'),['FirstName','LastName','FavoriteColor']),
type: 'POST'
});