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 所以要类型转换,
但它只在当前请求页面有效
要用jquery去请求 再把data给对你Autocomplete 控件的 datasource
$.post("/Autocomplete/Products",{"prd_keyword":key},function(data){
// data 就是你要的 json 数据。 key是你要传进去的值。
})