2017-04-06 120 views
0

我在读如何MVC路由工作从Routing Basics in ASP.NET MVCMVC路由的奇怪行为

它说

比{控制器}和{}行动等其他网址参数是 可以作为参数传递给选定操作方法传递。

所以我创建了一个参数名为controllerstring类型的动作。

public ActionResult About(string controller, string test) 
     { 
      ViewBag.Message = "Your application description page."; 

      return View(); 
     } 

当我看的controller价值,这是首页,这是我的控制器名称。

但是,当我试图从这两个方法访问,然后它返回null。 为什么

  • Request.Params["controller"]
  • Request.QueryString["controller"]

如果不能从上面的方法采摘控制器参数的值,然后从那里得到控制器值。

我用这个动作链接来调用动作。

<a href="@Url.Action("About", "home", new { controller ="Hello" , test ="Amit"})">Check</a> 
+0

'controller value'是什么意思? – ihavenokia

+0

@ihavenokia:它是名为关于 –

+0

的参数名称我在一个小提琴中查看并测试了'Url.Action',链接帮助程序的URL翻译为'/ Home/About?test = Amit',解雇了'Hello'字符串(但是奇怪的是''Hello'在action方法中被成功捕获)。也似乎'Request.Params [“test”]'和'Request.QueryString [“test”]'作为'Amit'字符串。 –

回答

0

你可以使用控制器和动作值

串actionName = HttpContext.Current.Request.RequestContext.RouteData.Values [ “行动”]的ToString();

string controllerName = HttpContext.Current.Request.RequestContext.RouteData.Values [“controller”]。ToString();

+0

这不是什么OP是问 –