微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何通过 ASP.NET MVC

如何解决如何通过 ASP.NET MVC

我想创建一个动作控制器来读取 url 参数,然后执行相应的操作,但我不知道接下来要做什么。

以下是索引控制器。我想读取 'code' url 参数,然后用它做一些事情。

public ActionResult Index(string code)
        {
//do stuff with 'code' param details
                return View();
        }

我还在路由配置中添加了以下内容

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",url: "{controller}/{action}/{id}",defaults: new { controller = "Home",action = "Index",id = UrlParameter.Optional }
        );
        routes.MapRoute(
                name: "Code",url: "{controller}/{action}/{code}",action = "Index"}
            );

    }

每当我尝试操作 url 时,什么也没有发生,当我使用断点时,代码参数保持为空。

以下是我尝试过的网址类型,但没有任何效果

http://localhost:49218/?code=1234
http://localhost:49218?code=1234
http://localhost:49218/Index/?code=1234

解决方法

你为什么不这样做

public ActionResult Index(string id)
        {
//do stuff with 'id' param details
                return View();
        }

并删除您的代码路由。

例如您可以使用这些网址

http://localhost:49218/Home/Index/1234
//or
http://localhost:49218/Home/Index/mycode1

或者你可以使用属性路由:

[Route("/")]
[Route("~/Home/Index/{id?}")]
[Route("~/{id}")]
public ActionResult Index(string id)
        {
//do stuff with 'id' param details
                return View();
        }

在这种情况下,您可以使用这种网址:


http://localhost:49218
//or
http://localhost:49218/1234
//or
http://localhost:49218/mycode1
//or
http://localhost:49218/Home/Index/1234
//or
http://localhost:49218/Home/Index/mycode1

但是之前配置属性路由:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapMvcAttributeRoutes();

        routes.MapRoute(
            name: "Default",url: "{controller}/{action}/{id}",defaults: new { controller = "Home",action = "Index",id = UrlParameter.Optional }
        );

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。