首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在.net mvc控制器中需要可以为空的参数,即使总是使用值调用

问在.net mvc控制器中需要可以为空的参数,即使总是使用值调用
EN

Stack Overflow用户
提问于 2013-05-03 17:15:53
回答 1查看 85关注 0票数 0

因此,我的web应用程序总是让主机关闭池并返回503个错误(可能是快速故障)。我的主人给我发来了这篇文章。

代码语言:javascript
复制
^? Exception type: ArgumentException 
^? Exception message:^?The parameters dictionary contains a null entry for parameter 'pageNum' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult AjaxFetch(Int32, Int32)' in 'Frontend.Controllers.BlogController'. An optional para

该方法的签名是

(上面没有属性,可以用get调用)

代码语言:javascript
复制
public ActionResult AjaxFetch(int pageNum, int pageSize)

现在这一切都很简单,我可以简单地将int改为int?瞧,瞧。这就是我所做的。我的问题是好奇的。为什么它会失败,因为我只在设置了params的情况下从js/jquery调用此函数。因此,代码总是有效的。而是在后台产生明显的错误。为什么会这样呢。没有人使用null调用它,但它却失败了。

最后,我将包括我的路由,这样就没有故障了,这是我的两个路由,我没有其他的了

代码语言:javascript
复制
        routes.MapRoute(
            name: "stalkSaveOld",
            url: "geoshare",
            defaults: new { controller = "Stalk", action = "SaveCoordinate" }
        );

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

顺便说一句,AjaxFetch是在BlogController中

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-03 17:18:25

为什么失败,因为我只在设置了params的情况下从js/jquery调用此函数。

我猜是其他的东西(一个机器人?)在不包含所有参数的情况下调用它。

我建议暂时将其更改为使用可为空的类型,但是如果在记录诊断信息(用户代理、客户端IP地址、完整请求URL)后检测到任何一个值为空,则会失败并显示错误。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16355403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档