0
以下罚款是在我的应用程序的具体情形:在一个控制器动作TempData的问题在Chrome中,当工作在IE和Firefox
- 我生成一个GUID。
- GUID存储在TempData中。
- 我将GUID与在该剃须刀视图(MyView.cshtml)中的ViewModel一起传递,该视图从该控制器操作中打开。
视图具有与GUID绑定的隐藏域。
@Html.HiddenFor(m => m.CustomGuid)
还有另一个控制器操作,它返回包含TempData中的GUID值的Json结果。
[HttpGet] public ActionResult GetGuid() { string result = String.Empty; if (GetTempData("mGuid") != null) { result = GetTempData("mGuid").ToString(); } else { result = "INVALID_SESSION"; } return Json(result, JsonRequestBehavior.AllowGet); }
我已经写了下面的MyView.cshtml jQuery的
$获得( '@ Url.Action( “GetGuid”, “控制器”)',函数(结果) {
if (result.toString().toLowerCase() == $('#CustomGuid').val().toString().toLowerCase()) { alert('ok'); } else { alert('Invalid Identifier.'); window.location = '@Url.Action("ShowErrorPage", "Controller")'; return false; } });
的问题是,它在IE和Firefox正常工作,但它总有不同的GUID中的TempData和Hidde n字段,所以每次给“无效的标识符”
的消息可能是什么原因?为什么在Chrome中这种行为可能会有所不同?
你应该检查,如果铬不为之间的“东西”做了要求,因为只的TempData直到下一个请求时才存在。你描述的行为('GetGuid()'返回'“INVALID_SESSION”')似乎无论如何表明。 – 2013-04-30 05:34:47
我试图把警报在JavaScript函数,它显示了TempData的和HiddenField读数不同的GUID,而“Invalid_Session”是没有得到显示任何他们要么...的 – Nirman 2013-04-30 06:10:54
有没有可能是铬可能会做的请求在之间,而IE和Firefox都没有做这样的要求? – Nirman 2013-04-30 06:12:01