gpt4 book ai didi

c# - MVC 路由参数为空

转载 作者:行者123 更新时间:2023-11-30 20:35:19 33 4
gpt4 key购买 nike

我收到以下错误消息,表明我的默认路由参数为空。我在 URL 中没有任何参数的 Controller Action 上使用了相同的代码,并且运行良好。我知道正在调用我的自定义路由,但我不明白为什么 startIndex 和 pageSize 在操作中显示为 null。

错误:

The parameters dictionary contains a null entry for parameter 'startIndex' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult ViewVcByStatus(System.String, Int32, Int32)' in 'AEO.WorkOrder.WebUI.Controllers.VendorComplianceController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter.

Parameter name: parameters

Controller :

public ActionResult ViewVcByStatus(string status, int startIndex, int pageSize) { ... }

路线:

routes.MapRoute("ViewVcByStatus", "ViewVcByStatus/{status}",
new
{
controller = "VendorCompliance",
action = "ViewVcByStatus",
startIndex = 0,
pageSize = WebConfigurationManager.AppSettings["PageSize"],
});

链接:

<a href="VendorCompliance/ViewVcByStatus?status=PROCESSED">

还尝试了产生相同错误的链接:

<a href="VendorCompliance/ViewVcByStatus/PROCESSED">

最佳答案

试试这个。

public ActionResult ViewVcByStatus(string status, int? pageSize, int?startIndex)
{
return View();
}

路由配置

routes.MapRoute(
name: "ViewVcByStatus",
url: "ViewVcByStatus/{status}",
defaults: new { controller = "VendorCompliance", action = "ViewVcByStatus", startIndex = UrlParameter.Optional, pageSize = UrlParameter.Optional });

可选参数应该在routeconfig中声明optional并标记为int?在您的操作方法中,这将为您完成工作。希望这会有所帮助。此解决方案将适用于您的问题“http://localhost:53290/VendorCompliance/ViewVcByStatus?status=PROCESSED”中的 url 模式。

关于c# - MVC 路由参数为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38211206/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com