7

次のような「Thingy」コントローラーがあります。

[HttpPost]
public ActionResult DeleteConfirmed(long? id) {
    // <Validate ID, delete associated records>
    return RedirectToAction("Index", "Thingy");
}

ただし、RedirectToActionルート値にパラメーターからのIDが入力されたままになりますが、IDをnullのままにして、www.mywebsite.com/Thingy代わりににリダイレクトする必要がありますwww.mywebsite.com/Thingy/1

実際、私はwww.mywebsite.com/Thingy直接アクセスでき、期待どおりに機能します。

私が試してみました:

RedirectToAction("Index", "Thingy")
RedirectToAction("Index", "Thingy", new { })
RedirectToAction("Index", "Thingy", new { id = (long?)null })

www.mywebsite.com/Thingy?id=1他の人が にリダイレクトするのと同じようににリダイレクトするので、最後のものは特に面白いですwww.mywebsite.com/Thingy/1

4

1 に答える 1

16

RedirectToAction()最初の例の前に次を追加します。

RouteData.Values.Remove("id");

指定したルート値が元のルート値とマージされているような気がします。

于 2014-10-22T21:51:03.790 に答える