以下是我的应用程序中的确切场景:
- 我在控制器操作中生成 GUID。
- GUID 存储在 TempData 中。
- 我将 GUID 与从该控制器操作打开的剃刀视图 (MyView.cshtml) 中的 ViewModel 一起传递。
视图具有与 GUID 绑定的隐藏字段。
@Html.HiddenFor(m => m.CustomGuid)
还有另一个控制器操作返回一个 Json 结果,其中包含 TempData 中的 GUID 值。
[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
$.get('@Url.Action("GetGuid", "Controller")', 函数(结果){
if (result.toString().toLowerCase() == $('#CustomGuid').val().toString().toLowerCase()) { alert('ok'); } else { alert('Invalid Identifier.'); window.location = '@Url.Action("ShowErrorPage", "Controller")'; return false; } });
问题是,它在 IE 和 Firefox 中运行良好,但在 TempData 和 HiddenField 中总是有不同的 GUID,所以每次都会给出“无效标识符”的消息
可能是什么原因?为什么这种行为在 Chrome 中会有所不同?