Asp.net mvc 结果什么都不是
我正在使用这段代码访问我的服务器(MVC),这段代码可以正常工作。在结果“data”({“Id”:30,“Description”:“Samples Photos”,“Name”:“First Galery”})中,我尝试获取属性数据 JavaScriptAsp.net mvc 结果什么都不是,asp.net-mvc,json,Asp.net Mvc,Json,我正在使用这段代码访问我的服务器(MVC),这段代码可以正常工作。在结果“data”({“Id”:30,“Description”:“Samples Photos”,“Name”:“First Galery”})中,我尝试获取属性数据 JavaScript $(function () { $('#UserGaleries_').change(function () { try { if ($(this).val() ==
$(function () {
$('#UserGaleries_').change(function () {
try {
if ($(this).val() == -1) {
$('#NameGaleriesEdit').val('');
$('#DescriptionGaleriesEdit').val('');
}
else {
$.post('/UserGaleries/ChangeCategorie',
{ selectedID: $(this).val() },
function (data) {
alert(data.Name); //Nothing
$('#NameGaleriesEdit').val(data.name);
$('#DescriptionGaleriesEdit').val('asdf');
});
}
} catch (e) {
alert(e);
}
});
});
MVC
当您使用post()
方法而不指定预期的内容类型时,数据将只是一个包含JSON的字符串(与JavaScript对象相反)。执行警报(数据)
以验证
把那篇文章改写成
$.ajax({
url:'/UserGaleries/ChangeCategorie',
data:{ selectedID: $(this).val() },
method:"POST",
dataType:"json",
success:function (data) {
alert(data.Name);
}
});
或者,您可以使用$.getJSON()
,但我不确定是否可以让它执行POST请求。您可以尝试将$.POST()中的数据类型设置为“json”。检查[文档]中的示例
它也是data.Name
而不是data.Name
大概是这样的:
$.post('/UserGaleries/ChangeCategorie',
{ selectedID: $(this).val() },
function (data) {
alert(data.Name);
$('#NameGaleriesEdit').val(data.Name);
$('#DescriptionGaleriesEdit').val('asdf');
}, "json");
重要建议:用于检查应用程序服务器的确切响应。尝试使用其他方式访问数据。使用数据[“Name”]在返回JSON数据后,您还可以使用JSON解析数据。解析(结果)
您的ChangeCategories操作方法需要HttpPostattribute@Jon. 这是不正确的。我不知道JavaScript的奥秘,但你试过调用data().name吗?它看起来像是区分大小写的问题:data.name
或data.name
?我认为这不会有任何区别。。。。如果数据类型为json,则data[“Name”]和data.Name应相同。
$.post('/UserGaleries/ChangeCategorie',
{ selectedID: $(this).val() },
function (data) {
alert(data.Name);
$('#NameGaleriesEdit').val(data.Name);
$('#DescriptionGaleriesEdit').val('asdf');
}, "json");