MVC3 查询返回指定字段如何写?
请教一个问题:根据一个用户的编号,通过用户表User关联部门表Dept取用户编号和部门名称返回UserViewclass UserView
{
userid,deptname 有两个成员 用户编号 和部门名称
}
代码:
public UserView GetModuleDetail(int id)
{
var query = from a in db.User
join b in db.Dept
on a.deptid equals b.deptid
where a.userid == id
select new { userid = a.userid, deptname = b.deptname };
return ????;
}
请问下 return 那边我该如何写? --------------------编程问答--------------------
public ActionResult GetModuleDetail(int id)
{
var json = new JsonResult();
var query = from a in db.User
join b in db.Dept
on a.deptid equals b.deptid
where a.userid == id
select new { userid = a.userid, deptname = b.deptname };
json.Data = new { iserror = false, Query = query };
return json;
}
getAjax(url, str, function (json) {--------------------编程问答-------------------- 如果表是有主外关联的话 但会消耗点内存http://www.cnblogs.com/wlflovenet/archive/2011/07/29/efandmvc6.html
if (!json.iserror) {
alert(json.Query);
} else
{}
});
你直接返回User
然后
User.Dept.Deptname
如果你一定要自定义类
return new UserView(){userid=query.userid ;deptname=deptname };//这是新的语法 可能不用() --------------------编程问答-------------------- 你查询的数据可以放到list里 然后返回list的形式 在前台foreach遍历就行 --------------------编程问答-------------------- 必须定义一个这样的类才可以。 --------------------编程问答-------------------- 当然你也可以返回object类型,程序中用dynamic获取。
比如
object foo()
{
return new { id = 1, name = "a" };
}
main()
{
dynamic d = foo();
Console.WriteLine(d.id);
}
但是要注意,匿名类型是只读的。
这么写不可以
dynamic d = foo();
d.id = 2; // error
补充:.NET技术 , ASP.NET