1

有没有办法链接到另一个显示搜索结果的视图而无需使用查询字符串?例如,我知道我可以执行以下操作:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(string txtOrderNumber)
{
    return RedirectToAction("OrderLookup", new { controller = "Report", id = txtOrderNumber });            
}

但是,假设我只想使用超链接(带有订单号的超链接)而不是表单帖子。如何在不使用查询字符串的情况下路由到结果视图?非常感谢。

4

2 回答 2

3

将 txtOrderNumber 参数重命名为 id。然后它将被默认路由拾取。或者,在与默认路由中的 id 值相同的位置引入一个名为 txtOrderNumber 的新路由,并将其限制为仅响应此控制器。

于 2008-12-22T14:30:54.383 回答
0

埃里克,

对于 webforms,命令参数通过发布传递,值存储在控件中(我相信存储在隐藏字段或也是隐藏字段的视图状态中),但页面确实回发。

如果您不想发帖并且不使用查询字符串,我能想到的唯一解决方案是让您在同一页面上发帖,捕获 id 并将其存储在 TempData 中,然后执行 RedirectToAction。在控制器中,只需使用从上一页存储的 TempData 值。

这仍然会生成一个帖子,但如果用户刷新页面,他们将不会看到“重新发送数据”消息。

于 2009-05-04T20:48:17.887 回答