0

在 ASP .NET MVC 3+ 中是否有可能基于特定状态为多个操作提供一个相同的路由?

例如,在 LinkedIn 或一些类似的网站上,相同的路由http://site-domain/home 用于多个视图。

如果用户未登录,主页将显示欢迎视图,但如果用户已登录,则会显示用户的主页,其中显示他的通知和其他用户特定数据。

我们可以根据用户的登录状态或任何其他类型的数据控件,使用相同的路由 url 路由到不同控制器的不同操作吗?

注意:在同一操作中显示不同的视图不是一种选择,因为两个操作具有完全不同的逻辑。

4

1 回答 1

0

当然。您有几个选择,第一个是根据用户的某些属性为用户提供您选择的视图,但是您对视图模型的控制有限。

public ActionResult SomeAction(){

if(User.Identity.Name == "Admin")
    return View("AdminView");
else
    return View("SomeOtherView");
}

另一种选择是在控制器方法中将用户重定向到另一个操作,如下所示:http ://weblogs.asp.net/mikebosch/archive/2008/02/02/asp-net-mvc-tip-2-redirecting -to-another-action-and-passing-information-to-it.aspx

当然,始终可以选择根据某些用户属性在页面上呈现部分视图。如果您可以提供有关您的项目的更多信息,这将有助于找到解决方案。

于 2013-04-20T21:35:14.527 回答