gpt4 book ai didi

asp.net-mvc-3 - ASP.NET MVC : Passing a string parameter to an action using RedirectToAction()

转载 作者:行者123 更新时间:2023-12-01 23:30:13 24 4
gpt4 key购买 nike

我想知道如何使用 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 来传递 someString,但我仍然很好奇如何使上面的代码工作,只是为了满足我的好奇心。

最佳答案

我认为问题可能出在您的路线顺序中,或者出在您的 Controller 中。这是我需要使用的一些代码。

路由定义

        routes.MapRoute(
"TestRoute",
"Home/Testing/{id}/{MyString}",
new { controller = "Home", action = "Testing", id = 0, MyString = UrlParameter.Optional }
);

routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);

// note how the TestRoute comes before the Default route

Controller 操作方法

    public ActionResult MoreTesting()
{
return RedirectToAction("Testing", new { id = 23, MyString = "Hello" });
}

public string Testing(int id, string MyString)
{
return id.ToString() + MyString;
}

当我浏览到 /Home/MoreTesting 时,我得到了所需的 "23Hello" 输出,并在浏览器中输出。您可以发布您的路线和 Controller 代码吗?

关于asp.net-mvc-3 - ASP.NET MVC : Passing a string parameter to an action using RedirectToAction(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9123203/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com