有没有理由 Url.Action("Grid", "List", new { id = "Organisation"}) 会 return /List/Index/Organisation 而不是 /List/Grid?id=组织

Is there a reason Url.Action("Grid", "List", new { id = "Organisation"}) would return /List/Index/Organisation instead of /List/Grid?id=Organisation

我在视图中使用 Razor,需要生成一个 Url 但它返回的是 /List/Grid/Organisation 而不是 /List/Grid?id=organisation

var id = Model.EntityName.ToLower();
Url.Action("Index", "List", new { id = id})

我期待 List/Index?id=organisation 返回,但我得到 List/Index/Organisation。我不确定这是版本问题还是我遗漏了一些东西,因为我对 Razor/C#.

还很陌生

编辑:

$.get('@Url.Action("Grid", "List", new { id = id})&key=@key&pageNumber=' 
+ pageNo + '&pageSize=' + pageSize 
+ '&searchName=@Model.UniqueID' 
+ query, function (data) 
{
 $("#@Model.UniqueID").tablegrid('loadData', data);
});

和控制器

public override JsonResult Grid(string id, string key, string searchName, string searchText, string activeTabs, string pages, string filters, string query, string orderBys, string options, string context, int pageSize = 10, int pageNumber = 1)
        {
            return base.Grid(id, key, searchName, searchText, activeTabs, pages, filters, query, orderBys, options, context, pageSize, pageNumber);
        }

它是用于从数据库中检索信息并填充网格的调用的一部分。此代码已用于其他项目,但出于某种原因在这个新项目中出现了问题

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

本来就是

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

感谢@mjwills 为我指明了正确的方向。