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

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

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

CSHTML

  1. @{
  2. Layout = null;
  3. }
  4. Meta name="viewport" content="width=device-width" />
  5. Box">

控制器:

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

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

请尝试以下修改

  1. @{
  2. Layout = null;
  3. }
  4. Meta name="viewport" content="width=device-width" />
  5. Box">

编辑

如果更改以下行:

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

有了这段代码

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

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

猜你在找的jQuery相关文章