嗨我目前正在尝试使用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 + " }";