在 RedirectToAction MVC 中发送查询字符串

Send Query String in RedirectToAction MVC

我在下面的控制器中有两个动作方法-

public class VisitMasterController 
{
    public ActionResult StartBrVisit()
    {
        string id=(Request.QueryString["id"].ToString(); //value=null here
    }

    public ActionResult BrNotPresent()
    {
         return RedirectToAction("StartBrVisit","VisitMaster" , new { id = "id", name = "name" });
    }
{ 

重定向后,Request.QueryString["id"] returns 为空。

我的默认路由配置是-

         context.MapRoute(
         "BR_default",
         "BR/{controller}/{action}/{id}",
         new { action = "Index", id = UrlParameter.Optional },
         new[] { "OpinionLeader.Areas.BR.Controllers" } //add this line
     );

有什么帮助吗?

您已经使用名为 id 的参数定义了一个路由,因此当您使用 new { id = "id" } 时,RedirectToAction() 方法会找到一个匹配项并将该值添加为路由值,而不是查询字符串值(在 name 的情况下,没有匹配项,因此将其值添加为查询字符串值)。您可以使用

访问它
string id = (string)Request.RequestContext.RouteData.Values["id"]

但是,向您的方法添加参数会容易得多

public ActionResult StartBrVisit(string id)