Для вашего конкретного примера я бы просто сделал это, так как вы, очевидно, не заботитесь о том, чтобы браузер все равно получал перенаправление (в силу принятия ответа, который вы уже приняли):
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Index() {
// obviously these values might come from somewhere non-trivial
return Index(2, "text");
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(int someValue, string anotherValue) {
// would probably do something non-trivial here with the param values
return View();
}
Это работает легко, и на самом деле ничего смешного не происходит - это позволяет вам поддерживать тот факт, что второй действительно принимает только запросы HTTP POST (кроме этого случая, который в любом случае находится под вашим контролем), и вы не Вам также не нужно использовать TempData, о чем говорит ссылка, которую вы опубликовали в своем ответе.
Я бы хотел знать, что с этим не так, если есть что-нибудь. Очевидно, что если вы действительно хотите отправить в браузер перенаправление, это не сработает, но тогда вам следует спросить, почему вы пытаетесь преобразовать это независимо, поскольку мне это кажется странным.
Надеюсь, это поможет.