在MVC CORE中,此代码将从代码隐藏中添加一个cookie,然后将其读入变量
using Microsoft.AspNetCore.Mvc;
namespace WebApplication1.Controllers {
public class HomeController : Controller {
public IActionResult Index() {
Response.Cookies.Append("key", "value");
string cookieValueFromReq = Request.Cookies["key"];
return View();
}
}
}
我正试图在Razor页面中做同样的事情。我可以在页面本身这样做
@{
Response.Cookies.Append("key", "value");
}
但需要在代码隐藏中执行此操作。如果我在代码隐藏中使用它,就像这样
匹配MVC风格using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.AspNetCore.Mvc;
namespace WebApplication1.ViewModel {
public class BaseModel : PageModel {
public BaseModel () {
Response.Cookies.Append("key", "value");
}
}
}
Response
为null
因此会因预期的Object reference not set to an instance of an object.
错误而崩溃。
是否可以在Razor页面代码隐藏中读取/写入cookie,如果是,如何?
我是否需要强制初始化Response
或做一些完全不同的事情?