Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ajax选择要发布和搜索的表单输入_C#_Javascript_Jquery_Ajax_Asp.net Mvc - Fatal编程技术网

C# 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#中,您必须能够

我有一个使用AJAX的表单。如何选择表单的哪些输入发送到代码隐藏(而不是整个表单)? 阿贾克斯

形式

@使用(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'
  });