Html 若链接指向当前页面,则浏览器无法获取页面或链接不工作
若链接指向当前页面,则浏览器无法获取页面或链接不起作用。在下面的代码示例中,我有一个链接(在菜单中)。如果用户当前在GetData页面中,并且用户再次单击“GetData”链接,则不会发生任何事情。浏览器不会尝试检索页面。我已经在IE8和Chrome开发者工具中对此进行了监控。有什么想法吗Html 若链接指向当前页面,则浏览器无法获取页面或链接不工作,html,asp.net,asp.net-mvc,internet-explorer,google-chrome,Html,Asp.net,Asp.net Mvc,Internet Explorer,Google Chrome,若链接指向当前页面,则浏览器无法获取页面或链接不起作用。在下面的代码示例中,我有一个链接(在菜单中)。如果用户当前在GetData页面中,并且用户再次单击“GetData”链接,则不会发生任何事情。浏览器不会尝试检索页面。我已经在IE8和Chrome开发者工具中对此进行了监控。有什么想法吗 //Link <a href="@Url.Action("GetData", "Data")"><i class="glyphicon glyphicon-tag"></i>
//Link
<a href="@Url.Action("GetData", "Data")"><i class="glyphicon glyphicon-tag"></i>Get Data</a>
//Controller has a custom Authorization attribute
[AuthorizeRedirect]
public class DataController : Controller
// Controller Action Invoked
[HttpGet]
public ActionResult GetData(int parameter)
{
...
}
而我的测试应用程序仅包含以下内容:
Cache-Control:no-cache, no-store
Cache-Control:private
附加信息:我正在使用Angular JS和Bootstrap客户端。我认为这是因为浏览器的缓存。请清除浏览器缓存,然后重试。希望我能提供帮助在
Global.asax
中的应用程序\u PreSendRequestHeaders
事件中设置标题如何
您可以使用Response.Cache.SetCacheability
而不是直接设置头*
void Application_PreSendRequestHeaders(Object sender, EventArgs e)
{
Response.Cache.SetCacheability(HttpCacheability.NoCache);
}
另一种方法是手动设置标题
void Application_PreSendRequestHeaders(Object sender, EventArgs e)
{
Response.Headers.Set("Cache-Control", "no-cache");
}
如果您不希望到处都没有缓存,那么可以尝试以下方法:
[OutputCache(Location = OutputCacheLocation.None)]
public class HomeController : Controller
{
...
}
我已经清除了浏览器缓存好几次,同样的行为发生了,我已经做了两次,但仍然不起作用。奇怪的是,在我的应用程序中,我创建了一个新的控制器(具有相同的类和操作级别属性),并添加了一个新页面。但在新页面/控制器上,如果我单击指向当前页面的链接,该页面将刷新。看起来此问题与ng grid有关。我用angular js和no ng grid创建了另一个控制器和相应的页面,单击指向当前页面的链接后,该页面将刷新。当我添加一个简单的ng网格时,单击链接什么也不做。