为什么ASP.NET页面中Session -object 上的属性SessionID在请求之间发生变化?
我有一个这样的页面:
...
<div>
SessionID: <%= SessionID %>
</div>
...
Run Code Online (Sandbox Code Playgroud)
每次我点击F5时输出都会不断变化,与浏览器无关.
我有以下两种操作方法(简化问题):
[HttpGet]
public ActionResult Create(string uniqueUri)
{
// get some stuff based on uniqueuri, set in ViewData.
return View();
}
[HttpPost]
public ActionResult Create(Review review)
{
// validate review
if (validatedOk)
{
return RedirectToAction("Details", new { postId = review.PostId});
}
else
{
ModelState.AddModelError("ReviewErrors", "some error occured");
return RedirectToAction("Create", new { uniqueUri = Request.RequestContext.RouteData.Values["uniqueUri"]});
}
}
Run Code Online (Sandbox Code Playgroud)
因此,如果验证通过,我将重定向到另一页(确认).
如果发生错误,我需要显示包含错误的同一页面.
如果我这样做return View(),则会显示错误,但如果我这样做return RedirectToAction(如上所述),则会丢失模型错误.
我对这个问题并不感到惊讶,只是想知道你们是怎么处理这个问题的?
我当然可以返回相同的View而不是重定向,但我在"Create"方法中有逻辑,它填充了视图数据,我必须复制它.
有什么建议?
error-handling asp.net-mvc redirecttoaction modelstate http-redirect