2013-04-30 81 views
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中这种行为可能会有所不同?

+0

你应该检查,如果铬不为之间的“东西”做了要求,因为只的TempData直到下一个请求时才存在。你描述的行为('GetGuid()'返回'“INVALID_SESSION”')似乎无论如何表明。 – 2013-04-30 05:34:47

+0

我试图把警报在JavaScript函数,它显示了TempData的和HiddenField读数不同的GUID,而“Invalid_Session”是没有得到显示任何他们要么...的 – Nirman 2013-04-30 06:10:54

+0

有没有可能是铬可能会做的请求在之间,而IE和Firefox都没有做这样的要求? – Nirman 2013-04-30 06:12:01

回答

0

我发现,资源(一个简单的轻量CSS)文件丢失在服务器上。但是,该CSS在网站上没有任何意义,但如果找不到任何资源,Chrome会重新加载页面,而IE和Firefox则会忽略。话虽如此,我可以管理通过删除CSS(这是绝对没有在我的应用程序所需的)的引用来解决这个

相关问题