asp.net mvc3访问JsonResult返回的Json数据怎么访问?

2024-12-29 17:08:35
推荐回答(2个)
回答1:

JsonResult 是负责处理请求,返回结果的,如 Ajax
直接URL请求的话,就是只在页面上输出结果,
其不能用来返回页面,所以你想在视图上调用是不行的

如果你想在页面调用方法中的数据可以使用两种方法

View(object model)

ViewData["key"] = object value

public JsonResult Products(string prd_keyword)
{
var model = ...;
var products = model.Select(p => new {value = p.name});
ViewData["key1"] = products;//2
return View(products);//1
}

1.在视图的第一行,声明 model 的类型
@model System.Object //一定要在第一行,m 为小写
使用 @Model.Attribute //M 为大写
由于你的代码返回的是迭代的匿名类,所以页面上无法用 “.”跟着属性名来调用
建议你将其填充为实体类对象(集合),传到页面上使用
当然写在第一行的 model 的类型也要跟着改变

2.使用 @(ViewData["key1"] as System.Object).Attribute
其用法和 Session 一样,返回为 object 所以要类型转换,
但它只在当前请求页面有效

回答2:

要用jquery去请求 再把data给对你Autocomplete 控件的 datasource
$.post("/Autocomplete/Products",{"prd_keyword":key},function(data){
// data 就是你要的 json 数据。 key是你要传进去的值。
})