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

为什么Url.操作()是否为此操作返回NULL?

  •  0
  • Krumelur  · 技术社区  · 5 年前

    我正在研究一个ASP.NET核心MVC应用程序。它使用属性路由。 GetProperties 获取属性 page 但我没有运气 Url.Action()

    控制器:

    [Route("objects")]
    public class ObjectListController : Controller
    

    [HttpGet("")]
    public async Task<ActionResult> GetProperties(int? page)
    

    CSHTML:

    // This works - it returns "/objects" but obviously without any query params.
    @Url.Action("GetProperties", "ObjectList")
    
    // This returns NULL 
    @Url.Action("GetProperties", "ObjectList", new { page = 1 })
    

    为什么它没有生成预期的URL?

    编辑

    使用 Url.RouteUrl("GetPropertiesRouteName", new { page = 1 }) Url.操作() 将此添加到操作时有效:

    [HttpGet("", Name = "GetPropertiesRouteName")]

    0 回复  |  直到 5 年前