c# – 通过Ajax发布到MVC控制器

前端之家收集整理的这篇文章主要介绍了c# – 通过Ajax发布到MVC控制器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

嗨我目前正在尝试使用AJAX发布一个控制器的表单但是到目前为止我没有运气,我一直试图让表单将表单中的值提交给控制器提交表单但是,任何人都知道为什么不行? :

CSHTML

@{
    Layout = null;
}
Meta name="viewport" content="width=device-width" />
    Box">
        

控制器:

 [HttpPost]
        public string GetSearchDetails(string companyName,string specialities,string category,string location)
        {
           return liveSearchRepository.GetUserInputResults(companyName,specialities,category,location);
        }
最佳答案
从我可以看到它看起来像您的表单控件和您的Controller操作没有正确链接,因为您的控件的名称与您的操作的参数不同.

还要将ajax调用中的contentType更改为JSON,并将表单数据转换为JSON字符串.这样,如果您在通过Ajax提交表单数据之前将其输出到控制台,您可以看到发送的内容.

请尝试以下修改

@{
    Layout = null;
}
Meta name="viewport" content="width=device-width" />
    Box">
        

编辑

如果更改以下行:

var formData = JSON.stringify($("#searchform").serializeArray());

有了这段代码

var formData = "";
$.each($("#searchform"),function(i,v) {
    if (formData.length > 0) formData += ",";
        formData += v.name + ": '" + v.value + "'";
});
formData = "{ " + formData + " }";

解决方案将是通用的,如果您更改表单字段的名称,则无需更改代码.

猜你在找的jQuery相关文章