asp.net mvc3访问JsonResult返回的Json数据怎么访问?
publicclassAutocompleteController:Controller{////GET:/Autocomplete/privateEProductDBE...
public class AutocompleteController : Controller
{
//
// GET: /Autocomplete/
private EProductDBEntities db = new EProductDBEntities();
public JsonResult Products(string prd_keyword)
{
var model = from p in db.product
where p.name.Contains(prd_keyword)
select p;
var products = model.Select(p => new {value = p.name});
return Json(products, JsonRequestBehavior.AllowGet);
}
}
有以上控制器,希望在其它视图文件里返回此action的json数据怎么返回?我试过用@url.Action,不过只能返回url,怎么办呢? 展开
{
//
// GET: /Autocomplete/
private EProductDBEntities db = new EProductDBEntities();
public JsonResult Products(string prd_keyword)
{
var model = from p in db.product
where p.name.Contains(prd_keyword)
select p;
var products = model.Select(p => new {value = p.name});
return Json(products, JsonRequestBehavior.AllowGet);
}
}
有以上控制器,希望在其它视图文件里返回此action的json数据怎么返回?我试过用@url.Action,不过只能返回url,怎么办呢? 展开
2个回答
展开全部
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 所以要类型转换,
但它只在当前请求页面有效
直接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 所以要类型转换,
但它只在当前请求页面有效
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询