我正在开发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? 谢谢。
答案 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;
}
}
} );