如何输入'我的应用程序,通过页面持久化这种类型

本文关键字:持久化 类型 种类 应用程序 我的 何输入 输入 | 更新日期: 2023-09-27 17:53:49

我正在为一家销售某些产品的公司开发一个应用程序,该应用程序负责管理产品更改和退货。对于更改和返回有不同的规则,但"屏幕/视图"都是相同的。此应用程序必须为每种类型使用不同的url。例如:

www.company.com/change

www.company.com/return

应用程序也需要有一个Login页面。

当我访问www.company.com/CHANGE时,用户被重定向到登录页面,在这个页面中有一个带有change文本的标签。

当我访问www.company.com/RETURN时,用户被重定向到登录页面,在这个页面中有一个带有return文本的标签。

问题是:如何通过页面持久化这种类型,提醒用户如果在应用程序和注销的身份验证区域内,他必须返回到正确的登录页面,并使用正确的标签文本。

我试图将类型存储在会话中,但如果会话结束,则不可能知道如何将参数传递到登录页面(更改或返回)

我也试过了,在Global.asax中创建了一个新的路由,像这样:

routes.MapRoute(
    "qwert", // Route name
    "{type}/{controller}/{action}/{id}", // URL with parameters
    new { controller = "Login", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);

但是这个url,例如:"xxx/home/list"匹配,我希望只是

return/abc/abc 

change/abc/abc 

在此过程结束时,我将在数据库中持久化此类型的记录。

我该如何解决这种情况?

如何输入'我的应用程序,通过页面持久化这种类型

问题需要一点澄清,但如果我理解正确,简单地处理包含{type}参数的所有链接和url。

我做了一个小测试,结果是:

在<<p> strong> global.asax :
public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    routes.MapRoute(
      "qwert", // Route name
      "{type}/{controller}/{action}/{id}", // URL with parameters
      new { controller = "Login", action = "Index", type = "", id = UrlParameter.Optional } // Parameter defaults
    );
}

LoginController你可以得到这样的类型:

public ActionResult Index(string type)
{
    return View();
}

您可以像下面描述的那样为会话过期创建一个自定义属性,并将用户返回到适当的页面www.company.com/{type}