根据选择定义视图

时间:2009-11-16 20:44:10

标签: asp.net asp.net-mvc routing webforms views

好吧标题不是很具描述性,但我不确定如何解释,但是这里去了!

我有一个用户登录的Web应用程序(可以使用 MVC或标准Web表单)。如果用户已注册多个产品,则可以选择在它们之间切换。对于此示例的清单,可以说User1已登录并可以访问Product1,Product2和Product3。

现在,每种产品都会有很大差异,功能也不同。我想要的是围绕他们选择的产品而不是重定向到子域的主要观点。

想要做的就是让他们去www.mysite.com/product1或www.mysite.com/product2,而不仅仅是www.mysite.com他们选择的产品并让网站呈现该产品的视图等。

哇哇,这有什么意义吗?我在想mabe使用会话或东西和URL重写?是否有任何样本应用程序可以使用我可以看到的相同类型的功能?

感谢您的帮助,我很感激!

3 个答案:

答案 0 :(得分:0)

要将产品ID保留在网址之外,您可以使用包含所需产品ID的隐藏控件post产品选择页面到服务器。

<input type="hidden">

在代码隐藏或控制器方法中获得值后,可以使用产品ID设置Session变量以保持持久性,然后执行重定向到相应的产品页面。

这适用于ASP.NET和ASP.NET MVC。

答案 1 :(得分:0)

如果你能详细说明,那将会有所帮助。

根据我的理解,这是我的答案:

您可以做的是在用户登录后将其重定向到特定页面。

     public ActionResult Login()
     {
          //Login Logic
          if(UserLoggedIn)
          {
             User MembershipUser = GetUser(User.Identity.Name);
             if(MembershipUser.HasProduct1)
                 return View("Product1");
             else if(MembershipUser.HasProduct2)
                 return View("Product2");
             else if(MembershipUser.HasProduct3)
                 return View("Product3");
          }
     }

根据用户的产品,这只是对特定视图的简单重定向。

如果你能详细说明,我可以给出更好的答案。

答案 2 :(得分:0)

我想我将在ASP.NET MVC中使用自定义ViewEngine。我可以根据所选择的产品呈现不同的视图。感谢大家的建议。