我想从ViewResult
重定向,以便在搜索结果为1
而不是产品列表页面时显示特定的产品详细信息。
其他网页表示要将ViewResult
更改为ActionResult
并使用RedirectToAction
。但我的问题是我的控制器继承了第三方控件,我的搜索方法设置为覆盖相同的第三方控件方法,即ViewResult
。
我想知道是否有人对我能做什么有什么建议,如果有另一种方法从ViewResult
重定向,或者是否有另一种方法来处理第三方控件搜索方法的覆盖是ActionResult
。
答案 0 :(得分:2)
你可以只返回一个不同的视图(没有重定向)
//in your action method
if( result.Count == 1 )
return View( "Product", result[0] );
或直接调用其他操作方法(如果它们在同一个控制器中)
if( result.Count == 1 )
return YourActionDetails( result[0].Id /* params */ );
或者,您可以返回一个简单的View,它可以自动重定向客户端
// a "Redirect" view
@model Product
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Refresh" content="0;url=@Url.Action("Details", Model.Id)" />
</head>
<body></body>
</html>
答案 1 :(得分:0)
如果您无法更改操作的返回类型,则可以使用路由将带有1的请求路由到不同的操作。
只需定义另一条路线,并确保在默认路线之前将其添加到RouteCollection
。