asp.net-mvc – 当MVC路由触发时,在控制器中获取空参数值
首先,我是MVC的新手,所以请原谅这个问题是否基本.
我正在使用自定义路由创建以下URL(http://mysite/subscriber/12345),其中12345是订户号.我希望它在Subscriber控制器中运行ShowAll操作.我的路由是触发并使用Phil’s route debugger,当我传入上面的url时,路由调试器显示ID为12345.
为什么路由调试器显示一个值而控制器没有看到它? 这是我的路线(第一个是罪魁祸首) routes.MapRoute( "SubscriberAll","subscriber/{id}",new { controller = "Subscriber",action = "ShowAll",id=0 },new { id = @"d+" } //confirm numeric ); routes.MapRoute( "Default",// Route name "{controller}/{action}/{id}",// URL with parameters new { controller = "Home",action = "Index",id = UrlParameter.Optional } // Parameter defaults ); 知道为什么我在ShowAll动作中得到null吗?这是动作方法签名: public ActionResult ShowAll(int id) 解决方法
发现控制器方法签名需要接受一个字符串,因为MVC不知道传递参数是什么类型,因此无法将其转换为int,但它可以通过约束强制执行它.
所以,我最终得到的路线是这样的:
我最终得到的控制器方法签名就是这个 public ActionResult ShowAll(string id) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 删除ASP.NET HTML页面标题中的额外空格?
- asp.net-mvc – MVC4脚手架添加控制器给出错误“无法检索元
- asp.net – ReportViewer控件返回空白页面
- 如何设置文本框的值textmode = date ASP.NET C#
- asp.net-mvc – 为什么我的IIS Express Web应用程序项目在尝
- asp.net-mvc-3 – ASP.NET MVC 3:当BeginForm在布局上时生
- asp.net-mvc – MVC – 如何更改帖子中文本框的值?
- 如何修复ASP.NET错误“文件’nnn.aspx’没有预编译,不能被请
- 什么是ASP.Net相当于PHP的回声?
- .net – 在VS 2010中调试时修改代码
- asp.net – 是否可以根据用户角色隐藏/显示Kendo
- asp.net-mvc – 如何将特定于HTTP-Request的对象
- asp.net – 引用相同主键的两个外键
- asp.net-mvc – MVC DropDownList SelectedValue
- asp.net – 处理程序执行子请求时出错’System.W
- asp.net-mvc – ASP.NET MVC 3确定会话状态(新的
- asp.net – web.config中的多个/不同的身份验证设
- asp.net – 如何以编程方式触发dropdownlist.sel
- asp.net-mvc – 设置MVC 3 rc1 Razor cshtml文件
- 什么是ASP.NET相当于PHP中的memcached?