window.location.reload(true)发送get请求

时间:2013-04-24 08:41:09

标签: javascript asp.net-mvc window.location

我正在开发MVC Web应用程序。 我通过form.submit使用HttpPost来请求除first / default视图之外的所有视图。 因此,浏览器地址栏中的网址不会更改,即保留http://mymachine:62846 当我尝试window.location.reload(true)时,url变为http://mymachine:62846/Home/GetPartialView并且Web浏览器显示错误:

  '/'应用程序中的服务器错误。无法找到该资源。   描述:HTTP 404.请求的URL:/ Home / GetPartialView

HomeController方法GetPartialView中的

标记为HttpPost

[HttpPost]
public ActionResult GetPartialView(BroadcastedData data)

基于上述错误,我的理解是当window.location.reload(true)执行时,浏览器发送HttpGet请求或HttpPost没有发布数据,服务器无法正确路由请求。

我错了吗?

如何正确地通过代码重新加载页面,基本上模仿用户按下CTRL + R? 谢谢。

1 个答案:

答案 0 :(得分:0)

由于您的操作方法属于[HttpPost]类型,因此需要发布数据。我希望有一个[HttpGet]动作方法,通过它可以呈现视图。您必须将特定操作方法([HttpGet])的URL设置为window.location,而不是重新加载页面。

 window.location = url;

要在ctrl + R上执行此操作,请尝试以下代码:

$( document ).bind( 'keydown', function ( event )
                {
                    if ( event.which == 82 )//R=>82
                    {
                        if ( event.altKey )
                        {
                            window.location=desired_URL;
                        }
                    }
                } );