首页 > 解决方案 > Url.Action("Grid", "List", new { id = "Organisation"}) 是否有理由返回 /List/Index/Organisation 而不是 /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);
        }

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

标签: c#asp.net-mvcurl-routing

解决方案


 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,他为我指明了正确的方向。


推荐阅读