在MVC动作中传递参数

时间:2014-10-02 15:37:27

标签: c# asp.net-mvc model-view-controller

我有一个典型的MVC应用程序,其中包含以下操作:

public ActionResult MyAction(string param1)

当我以这种方式调用此动作时:

http://domain/MyController/MyAction?param1=dasas

我收到了假设的param1:" dasas"

但是在MVC中,想法是将params传递给对象吗?

http://domain/MyController/MyAction/dasas

这种方式不起作用,我想知道为什么!有什么想法吗?

更新: 这是我的路线:

routes.MapRoute(name: "Default", url: "{controller}/{action}/{id}", defaults: 
                new { 
                    controller = MVC.RegistrationAuthority.Name,
                    action = MVC.RegistrationAuthority.ActionNames.Landing, 
                    id = UrlParameter.Optional 
                });

1 个答案:

答案 0 :(得分:1)

您需要配置路由以了解传入的参数是param1

开箱即用的asp.net mvc只计算{id} param

routes.MapRoute(null, "MyController/MyAction/{param1}", new { controller = "MyController", action = "MyAction"});

请务必在可能覆盖它的其他路线(即默认路线)之前添加此路线