Jsonresult在我的Ajax调用中使用参数失败.为什么会发生这种事
Jsonresult is failing with parameter in my Ajax Call. Why is it happening?
这是我视图中的脚本。
$(function () {
$('#buttonx').on("click", function (e) {
e.preventDefault();
$.ajax({
url: 'Ficha/VerificarPatrocinador',
contentType: 'application/json; charset=utf-8',
type: 'GET',
dataType: 'json',
data: {i: 100036},
success: function (data) {
$(data).each(function (index, item) {
//$('#NomePatr').append(item.Nome)
$("#NomePatr").val(item.Nome);
});
}
});
});
});
</script>
这是我在控制器上的操作。
public JsonResult VerificarPatrocinador(int i)
{
var db = new FMDBEntities();
db.Configuration.ProxyCreationEnabled = false;
db.Configuration.LazyLoadingEnabled = false;
var consulta = db.Tabela_Participante.Where(p => p.ID_Participante == i);
return Json(consulta.
Select(x => new
{
Nome = x.Nome
}).ToList(), JsonRequestBehavior.AllowGet);
}
我是Ajax/Jquery的新手,当我排除参数时,这是可以的,然而,当我试图将数据{I:100036}放入脚本中,并将参数放入操作中时。它不起作用。为什么会这样?控制器运行正常。参数甚至通过了,但我无法在视图中返回此结果非常感谢。
在控制器方法上使用[HttpPost]属性
[HttpPost]
public JsonResult VerificarPatrocinador(int i)
{
//Write Your Code
}
并将ajax类型属性从"GET"更改为"POST",然后使用JSON.stringify。还要仔细检查url。您的ajax应该像这个
$(function () {
$('#buttonx').on("click", function (e) {
e.preventDefault();
$.ajax({
url: 'Ficha/VerificarPatrocinador',
contentType: 'application/json; charset=utf-8',
type: 'POST',
dataType: 'json',
data: JSON.stringify({i: 100036}),
success: function (data) {
$(data).each(function (index, item) {
//$('#NomePatr').append(item.Nome)
$("#NomePatr").val(item.Nome);
});
}
});
});
});
希望它能帮助你
我认为@StephenMuecke可能有所收获,因为我能够通过一个新项目重现(预期的)逻辑。
首先要确定的是代码哪里出了问题:服务器还是客户端。
请尝试使用Visual Studio调试器,并在VerificarPatrocinador
中放置断点。然后运行客户端代码,查看是否命中了断点。如果成功,则意味着问题出在客户端。
从那里使用web浏览器的调试器来确定发生了什么。对.ajax
的返回结果使用.fail
函数,以确定HTTP调用是否失败。以下是一些可以用来分析故障的示例代码:
.fail(function (jqXHR, textStatus, errorThrown) {
alert(textStatus);
});
欲了解更多信息,请查看http://api.jquery.com/jquery.ajax/
ajax成功时更改以下代码
$.each(data, function (index, item) {
$("#NomePatr").val(item.Nome);
});
因为当您将数据作为数组、数组或集合的对象时,您可以使用此语法进行迭代,然后可以传递给var、dom。。。等等。
jQuery.each()
的意思是$(selector).each()
,您可以像下面的语法一样用于dom元素:例如
<ul>
<li>foo</li>
<li>bar</li>
</ul>
<script>
$("li").each(function( index ) {
console.log( index + ": " + $( this ).text() );
});
</script>
使用GET可以很好地工作,但如果它不安全,因为数据在作为查询字符串提交时对用户可见。
而邮政有
关于使用HttpPost 提交数据的要点
- POST-将要处理的数据提交到指定的资源
- Submit按钮将始终启动HttpPost请求
- 数据在http请求正文中提交
- 数据在url中不可见
- 与GET相比,它更安全,但速度较慢
- 它使用堆方法传递form变量
- 它可以发布无限的形式变量
- 建议发送用户不可见的关键数据
因此,我希望您理解并更改ajax类型:如果您愿意,请将"GET"更改为"POST"。
$.each()和$(选择器).ech()
更改此行
url: 'Ficha/VerificarPatrocinador'
至:
url: '/Ficha/VerificarPatrocinador'
因为当你使用这个url "Ficha/VerificarPatrocinador"
时,它会从url:current url + Ficha/VerificarPatrocinador
调用API,所以它不是正确的url。
- 为什么不'当单元测试出现解析错误时,我的因果报应测试会失败
- 为什么在我的单元测试中instanceOf的测试失败
- Javascript-为什么我的JQueryAJAX请求失败
- 为什么一个空的200会在jQuery中创建一个失败
- 为什么我会得到一个“;auth失败”;使用正确的凭据连接到MongoDB时出错
- 为什么当我在正则表达式中放置空格键时,我的 Javascript test() 函数失败了
- Jsonresult在我的Ajax调用中使用参数失败.为什么会发生这种事
- 为什么对img标记的前向引用在Chrome上失败,但在FireFox和IE上有效
- 为什么这个茉莉花节点测试没有失败
- 为什么创建和删除Azure表失败
- 为什么Angular 1.5双向绑定在将作用域变量传递给组件绑定时失败
- 为什么JavaScript函数在使用某些参数名称时会失败
- 尝试使用Javascript动态更改CSS失败.为什么?
- 为什么这个字符串比较在Jest的期望中没有失败
- 为什么 AJAX 在部分数据序列化方面失败
- 为什么这个jQuery颜色选择器在引导模式中失败
- 为什么在 IIS7 中托管 MVC3 项目时,我的 AJAX 加载第一次失败
- 为什么提交按钮在 extjs 中仍然有效,即使使用 vtype 的电子邮件验证失败
- 为什么表单元素中的Javascript会失败
- 简单的JavaScript空字符串检查,(空字符串)是什么意思,为什么失败