代码之家  ›  专栏  ›  技术社区  ›  Bagzli

url.page创建错误的url

  •  0
  • Bagzli  · 技术社区  · 7 年前

    请看一下此代码:

    var callbackUrl = Url.Page("/Account/ConfirmEmail", null, new { userId = user.Id, code }, Request.Scheme);
    

    结果是:

    http://localhost:5000/Account/Register?userId=614d16ae-4e95-4796-8d67-cb829e12585b&code=CfDJ8OeNFdnFCrtCsRU7ofatUuROudlTo%2BFQe84oAiL%2BPJSoYwGH9q1Xadg8XBbpOFg5DiRH1vDoGeQ8l3qIFHjB3NMM3ZDTlQexawj1b%2BJ7P6X3SHoBsYs7jLYwcfGQCbnk1SJA5koFkoDcWj04nsjzQlJMe8ttR0DFdi%2B6TTbWI8WkPBaS083O3aU%2BL2bbYGNwwikhrkbB0nHy4PRzK1LZuZo%3D&page=%2FAccount%2FConfirmEmail

    收银机是从哪里来的?为什么它不是帐户/确认电子邮件?我在account controller的register方法中创建了这个,所以我假设register是从那里来的,但是为什么它使用这个方法而不是我传入的方法呢?我确实看到它在最后添加了一个参数,但是为什么呢?

    据我所知,根据这一点,我做得很对。

    https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.urlhelperextensions.page?view=aspnetcore-2.1#Microsoft_AspNetCore_Mvc_UrlHelperExtensions_Page_Microsoft_AspNetCore_Mvc_IUrlHelper_System_String_System_String_System_Object_System_String_System_String_

    我还在使用核心2.1。

    编辑:他们的注册教程和我上面说的一样:

    https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity?view=aspnetcore-2.1&tabs=visual-studio#scaffold-register-login-and-logout

    如果我使用 .Action 而不是 .Page 我得到了我想要的结果,但我想知道为什么 行为不同。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Ryan    7 年前

    但是,它们都用于生成URL, Url.Action 是MVC和 Url.Page 用于Razor页。您使用帐户控制器中的代码 URL动作 是需要的。

    参照 Url Generation for controller/action Url Generation for pages

    在ASP.NET核心2.0中,scaffold标识使用MVC,而在ASP.NET核心2.1+中,它使用Razor页。

    推荐文章