将数据注入每个请求

我有一种情况,我需要在 javascript 中生成一个 ID 并以某种方式将它放入母版页,以便每次请求返回到控制器时,我都可以在控制器中获取该值。无论请求来自表单提交还是ajax调用等,我都需要它来工作。在控制器中,我将有一个带有getter的属性,该属性以某种方式从母版页中提取该值。这可能吗?如何实现?


至尊宝的传说
浏览 154回答 1
1回答

慕运维8079593

在客户端使用 cookie 并让您可以从控制器获取价值。编写一个基本控制器并在您的控制器中扩展该控制器。在基本控制器中写入方法以读取 cookie 并存储变量。您可以从派生控制器访问变量。见下面的例子:&nbsp;public class BaseController : Controller&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; private string _id = null;&nbsp; &nbsp; &nbsp; &nbsp; protected string ID&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; get&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var cookie = Request.Cookies.Get("ID");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (cookie != null)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _id = cookie.Value;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return _id;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; public class HomeController : BaseController&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; public ActionResult Index()&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var test = ID;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ViewBag.Title = "Home Page";&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return View();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; }// 将下面的代码放在您的母版页中...&nbsp;<script>&nbsp; &nbsp; &nbsp; &nbsp; function setCookie(cname, cvalue, exdays) {&nbsp; &nbsp; &nbsp; &nbsp; var d = new Date();&nbsp; &nbsp; &nbsp; &nbsp; d.setTime(d.getTime() + (exdays*24*60*60*1000));&nbsp; &nbsp; &nbsp; &nbsp; var expires = "expires="+ d.toUTCString();&nbsp; &nbsp; &nbsp; &nbsp; document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; setCookie("ID", "123456", 1);&nbsp; &nbsp; </script>
打开App,查看更多内容
随时随地看视频慕课网APP