2

我想从 a 重定向ViewResult,以便在搜索结果1而不是产品列表页面时显示特定的产品详细信息。

其他页面说将 更改ViewResult为 anActionResult并使用RedirectToAction. 但我的问题是我的控制器继承自第三方控件,并且我的搜索方法设置为覆盖相同的第三方控件方法,即ViewResult.

我想知道是否有人对我可以做什么有一些建议,是否有另一种从 a 重定向的方法,ViewResult或者是否有另一种方法来处理将第三方控件搜索方法覆盖为ActionResult.

4

2 回答 2

2

可以只返回一个不同的视图(没有重定向)

//in your action method
if( result.Count == 1 )
    return View( "Product", result[0] );

或直接调用其他操作方法(如果它们在同一个控制器中)

if( result.Count == 1 )
    return YourActionDetails( result[0].Id /* params */ );

或者,您可以返回一个简单的视图,使客户端自动重定向

// 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>
于 2012-08-10T15:56:53.640 回答
0

如果您无法更改操作的返回类型,则可以使用路由将带有 1 的请求路由到不同的操作。

只需定义另一条路线并确保将其添加到默认路线RouteCollection 之前。

于 2012-08-10T15:41:37.927 回答