MVC3.0 Razor 视图引擎 多个模型下 嵌套循环

暗尘掩月 2012-07-06 10:03:24
假设现有2张表
表结构假设如下
nav 表
id int ;
name varchar;
url varchar;
pid varchar;

表 message
id int;
uid int;
msg varchar;

同在页面输出
nav表生成导航 如何实现 简单的2层导航 ,递归的先不管
message就是简单的循环
...全文
551 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
暗尘掩月 2012-07-10
  • 打赏
  • 举报
回复
哪有asp.net mvc3电子文档
chjiamin 2012-07-06
  • 打赏
  • 举报
回复
按你这个资历,这个问题应该很简单了,难道你的需求没有说明白??

按你这个说法,3楼的兄弟说的就很符合了。

我有个程序跟你说的很相识:左边是菜单,右边是菜单对应的内容,左边菜单可以翻页,点左边菜单,右边内容会变动,翻页后右边内容变动为菜单第一项的内容。

实现原理介绍一下:
1、先将菜单取到model里(我只有一层。递归问题也不大,默认都是显示第一层,然后用ajax取第二层,就能实现递归了,很少有全部菜单默认都展开的。),把这个model传到view中,显示导航栏。
2、在view中写一段jquery脚本:页面加载完毕,取第一个导航栏的ID,用ajax方式获取对应的内容显示在右边。
3、导航栏点击的话用ajax方式更新右边内容,这个实现起来很简单,用@Ajax.ActionLinke很容易实现,考虑用PartialView实现。
  • 打赏
  • 举报
回复
你可以建一个综合性的Model,返回至View页面

也可以放在ViewData

设置可以直接通过JS+AJAX来得到相应的返回数据
暗尘掩月 2012-07-06
  • 打赏
  • 举报
回复
mvc的问题 没人懂么 大神人都去哪了
暗尘掩月 2012-07-06
  • 打赏
  • 举报
回复
来个人啊
  • 打赏
  • 举报
回复
判断用户登录一般是基于Session的,也就是说每次用户登录时候,都会向Session里写入用户信息,然后在整个会话期间通过判断Session来检测用户是否已经登录

因此,你要做的就是在BaseControl里,读取一下Session,并将Sessiion赋给相应的类,就像如下这样

   /// <summary>
/// 用户会话,访问多个属性时,应先付给变量
/// </summary>
protected UserSessionModel UserInfo
{
get {
if (Session[Define.User] == null)
{
return null;
}
else
{
return (UserSessionModel)Session[Define.User];
}
}
set { Session[Define.User] = value; }
}
lidingjun520 2012-07-06
  • 打赏
  • 举报
回复
不知道楼主要说啥
tptptp00 2012-07-06
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

如何写控制器基类 比如说BaseController 保存用户登陆信息(用户id,角色....)
其他控制器统继承这个
我写了个 BaseController 里面
public int _AdminID{get;set;}

然后再登陆成功后把用户id赋值给AdminID
跳转到另外的视图后 通过 AdminID 取值就变为null了 这个要怎么弄
[/Quote]
controller每次访问的时候都会从新创建 保存不了信息 再说 你用其他controller继承basecontroller 难不成你每次只能登陆一个用户?
这用session cookie都能处理
种草德鲁伊 2012-07-06
  • 打赏
  • 举报
回复
不知道楼主要说啥
暗尘掩月 2012-07-06
  • 打赏
  • 举报
回复
如何写控制器基类 比如说BaseController 保存用户登陆信息(用户id,角色....)
其他控制器统继承这个
我写了个 BaseController 里面
public int _AdminID{get;set;}

然后再登陆成功后把用户id赋值给AdminID
跳转到另外的视图后 通过 AdminID 取值就变为null了 这个要怎么弄
暗尘掩月 2012-07-06
  • 打赏
  • 举报
回复
如何写一个控制器基类 保存用户信息
lw_881020 2012-07-06
  • 打赏
  • 举报
回复
给你一个我在项目中的做法,你可以参考
控制器中的方法:

[HttpPost]
public JsonResult SearchWork(string id)
{
int typeid = int.Parse(id);
var list = rf.GetWorkList(p => p.Type == typeid);
var rs = from tt in list select new { name = tt.WorkName, id = tt.WorkID };
return Json(rs.ToList());
}

视图中的ajax:

$.ajax({
type: "POST",
url: "/Record/SearchWork/",
data: "id=" + obj + "",
success: function (msg) {
$("#searchName").empty();
if(msg=="")
$("#searchName").append("<option value=''><请选择></option>");
$.each(msg, function (n, m) {
$("#searchName").append("<option value='" + m.id + "'>" + m.name + "</option>");
});
}
});

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧