【发布时间】:2012-02-25 17:59:03
【问题描述】:
我想知道如何使用 RedirectToAction() 传递字符串参数。
假设我有这条路线:
routes.MapRoute(
"MyRoute",
"SomeController/SomeAction/{id}/{MyString}",
new { controller = "SomeController", action = "SomeAction", id = 0, MyString = UrlParameter.Optional }
);
在 SomeController 中,我有一个执行重定向的操作,如下所示:
return RedirectToAction( "SomeAction", new { id = 23, MyString = someString } );
我尝试使用 someString = "!@#$%?&* 1" 进行此重定向,但无论我是否对字符串进行编码,它总是失败。我尝试使用 HttpUtility.UrlEncode(someString)、HttpUtility.UrlPathEncode(someString) 和 Uri.EscapeUriString(someString) 对其进行编码。
所以我求助于我们的 TempData 来传递一些字符串,但我仍然很想知道如何使上面的代码工作,只是为了满足我的好奇心。
【问题讨论】:
-
您是否尝试在
web.config中更改relaxedUrlToFileSystemMapping和requestPathInvalidCharacters? -
@EricYin 不,我没有。我不知道这两个参数。我会调查他们。
标签: asp.net-mvc-3 url routing redirect url-encoding