关于MVC3实现多视图模版的问题(ViewEngine相关,高手请进)

rober0371 2012-09-05 03:51:58
需求:网站为两类角色的客户提供独立站点服务,每个角色的站点风格布局都不一样,但内容一样。要求用户访问不同的角色对应的站点时,加载相应的view视图模版。

疑问:使用ViewEngine的话,好像是在global中就直接注册死了,而我更希望在我的controller中根据查询到的角色,返回不同的view,那么如何实现?

期待高手解答!
...全文
203 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
rober0371 2012-09-10
  • 打赏
  • 举报
回复
问题已经解决,方法我就不再拷贝了,直接看博客园地址吧!http://q.cnblogs.com/q/40841/
rober0371 2012-09-06
  • 打赏
  • 举报
回复
奇怪,昨天的回复都没添加上?
种草德鲁伊 2012-09-05
  • 打赏
  • 举报
回复
使用自定义的ViewEngine
rober0371 2012-09-05
  • 打赏
  • 举报
回复
一楼的想法倒是提醒我了,这样子做也许比较简单些:
@if(ViewBag.Role== "Admin")
{
@Html.Partial("_Skin0")
}
else
{
@Html.Partial("_Skin1")
}
rober0371 2012-09-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

你只需要根据查询出来的角色来显示不同的内容就可以了
比如,直接在View中如下写
HTML code

@if(ViewBag.Role== "Admin")
{
<div id="div1" class="class1"></div>
}
else
{
<div id="div2" ……
[/Quote]
这种方法感觉比较笨哈,因为我的两套模版都有同样的目录结构,所以想在加载的时候自动判断修改ViewEngine中视图的路径!这样以来就比较方便了。跟换皮肤有点类似,但我的是换模版,也就是需要名字一样,但布局不一样那个的.cshtml
webdiyer 2012-09-05
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
疑问:使用ViewEngine的话,好像是在global中就直接注册死了
[/Quote]

不太理解这句话的意思,要返回不同的View,那不是很容易吗,象这样:

public ActionResult Test(){
var usr=..//获取当前用户
if(usr....)//条件1,加载myView
return View("myView");
else
return View("testView");
}

=========================================================================
AspNetPager免费分页控件7.4版发布:http://www.webdiyer.com/controls/aspnetpager
  • 打赏
  • 举报
回复
你只需要根据查询出来的角色来显示不同的内容就可以了
比如,直接在View中如下写

@if(ViewBag.Role== "Admin")
{
<div id="div1" class="class1"></div>
}
else
{
<div id="div2" class="class2"></div>

}

62,046

社区成员

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

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

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

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