Chrome中的TempData问题,同时在IE和Firefox中运行良好

时间:2013-04-30 04:57:18

标签: asp.net-mvc google-chrome tempdata

以下是我的申请中的确切情况:

  • 我在控制器操作中生成GUID。
  • GUID存储在TempData中。
  • 我将GUID与ViewModel一起传递到剃刀视图(MyView.cshtml)中,该视图从该控制器操作中打开。
  • 视图中有一个与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

  

$。get('@ Url.Action(“GetGuid”,“Controller”)',function(result){

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中的这种行为会有所不同?

1 个答案:

答案 0 :(得分:0)

我发现,服务器上缺少一个资源(简称轻量级CSS)文件。但是,CSS在网站上没有任何意义,但是如果没有找到任何资源,Chrome会重新加载页面,而IE和Firefox只会忽略。话虽如此,我可以设法通过删除CSS的引用来解决这个问题(在我的应用程序中绝对不需要)