如何输入'我的应用程序,通过页面持久化这种类型
本文关键字:持久化 类型 种类 应用程序 我的 何输入 输入 | 更新日期: 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}