asp.net-mvc – 如何持久保存用户选择(例如:主题选择)
抱歉这个含糊不清的问题但是我走了.
在每个页面上,a都有一个显示不同主题选项的局部视图.这些主题只是页面中元素颜色的不同css类.如何允许任何访问者选择不同的主题,并使其在所有后续请求和会话中保持不变,即使用户未登录也是如此. 我想这必须在客户端完成,而我能想到的就像饼干一样.不幸的是,我还没有真正在ASP.NET中对它们进行过实验,并且因为它的基本概念,因此无法想到Google搜索的正确措辞. 如果有人能指出我正确的方向,我会很感激.谢谢 解决方法
您可以使用称为
Profile的概念
使用配置文件,您可以声明要向用户公开的属性,这适用于匿名用户 基本上,配置文件属性存储在cookie中,因此您可以配置它们何时到期以及其他与cookie相关的设置 您的配置文件属性在ASP.Net中作为top-level items compilation – AKA Compilation Life-Cycle的一部分进行编译,因此它们将通过Profile类公开为强类型属性 例如: Web.config设置 <configuration> <system.web> <anonymousIdentification enabled="true"/> <profile defaultProvider="AspNetSqlProfileProvider" enabled="true"> <properties> <add name="FirstName"/> <add name="LastName"/> <add allowAnonymous="true" name="LastVisit" type="System.Nullable`1[System.DateTime]"/> <group name="Address"> <add name="Street"/> <add name="PC"/> <add name="InternalNumber" type="System.Int32" defaultValue="0"/> </group> <add name="EmployeeInfo" serializeAs="Binary" type="EmployeeInfo"/> </properties> </profile> </system.web> </configuration> 在代码中使用配置文件(本例中为Global.asax) void Application_EndRequest(object sender,EventArgs e) { if (Profile != null) { Profile.LastVisit = DateTime.Now; Profile.Save(); } } 此外,ASP.Net允许您使用Microsoft AJAX组件访问JavaScript中的属性: Web.config文件 <configuration> <system.web.extensions> <scripting> <webServices> <profileService enabled="true" readAccessProperties="LastVisit" writeAccessProperties="LastVisit"/> <jsonSerialization maxJsonLength="102400" recursionLimit="100" /> </webServices> </scripting> </system.web.extensions> </configuration> ASPX <script type="text/javascript" src="Scripts/jquery-1.7.2.min.js"></script> <script type="text/javascript"> $(function () { $("#profile").click(function () { Sys.Services.ProfileService.load(); Sys.Services.ProfileService.properties.LastVisit = new Date(); Sys.Services.ProfileService.save( null,function (m) { alert(m); },function (e) { alert(e); },null ); }); Sys.Services.ProfileService.load(null,function (r) { $("#res").append("<br/>"); $("#res").append(Sys.Services.ProfileService.properties.LastVisit.toString()); $("#res").append("<br/>"); },function (m) { $("#res").append(m.get_message()); },null); }); </script> <asp:ScriptManager runat="server" ID="sm"> <AuthenticationService /> <ProfileService /> <RoleService /> </asp:ScriptManager> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – ASP .Net Textbox Textchanged事件
- asp.net – 压缩不起作用
- 未能加载文件或程序集或它的某一个依赖项
- asp.net – NewRelic – 如何忽略Web应用程序的一部分
- asp.net-mvc-4 – HttpPostedFileBase始终保持为空mvc
- asp.net-mvc – Visual Studio无法解析模型,但加载了Razor页
- .net-assembly – 如何将DNU WRAP用于不在ASP.Net项目解决方
- ASP.NET Core根据环境切换NLog配置
- 如何在asp.net母版页中插入javascript [复制]
- asp.net-mvc-4 – GAC问题不能在IIS上托管应用程序