MVC如何避免控制器方法接收到的值不能被转换为参数类型
2014-06-19 23:12
267 查看
假设控制器方法参数类型是int:
而视图传递过来的是字符串:
于是就会报类似如下的错:
对于“MvcApplication3.Controllers.HomeController”中方法“System.Web.Mvc.ActionResult GetSth(Int32)”的不可以为 null 的类型“System.Int32”的参数“id”,参数字典包含一个 null 项。可选参数必须为引用类型、可以为 null 的类型或声明为可选参数。
参数名: parameters
解决方法一:允许参数可以为null
解决方法二:给参数赋默认值
public ActionResult GetSth(int id) { return Content(id.ToString()); }
而视图传递过来的是字符串:
@Html.ActionLink("获取","GetSth",new {id="hello"})
于是就会报类似如下的错:
对于“MvcApplication3.Controllers.HomeController”中方法“System.Web.Mvc.ActionResult GetSth(Int32)”的不可以为 null 的类型“System.Int32”的参数“id”,参数字典包含一个 null 项。可选参数必须为引用类型、可以为 null 的类型或声明为可选参数。
参数名: parameters
解决方法一:允许参数可以为null
public ActionResult GetSth(int? id) { return Content(id.ToString()); }
解决方法二:给参数赋默认值
public ActionResult GetSth(int id=1) { return Content(id.ToString()); }
相关文章推荐
- [VB.NET]问下 :自己写的com,其中一个接口方法返回一个variant类型的值,在.net中如何接收啊
- 异常详细信息: System.InvalidCastException: 对象不能从 DBNull 转换为其他类型——的解决方法
- asp.net mvc框架中,ajax传递json对象,并自动转换成参数对象的方法
- struts2.X心得7--接收请求参数和struts类型转换介绍以及案例分析
- 如何解决error C2664: “atof”: 不能将参数 1 从“std::string”转换为“const char *”
- “System.Web.Mvc.HtmlHelper”不包含“RouteLink”的定义,并且找不到可接受类型为“System.Web.Mvc.HtmlHelper”的第一个参数的扩展方法“RouteLink”...
- C#调用VC DLL接口函数参数类型转换方法介绍
- MVC area出现“找到多个与名为“Home”的控制器匹配的类型”错误的解决方法
- :MessageBoxW”: 不能将参数 1 从“const char [5]”转换为“LPCTSTR” 1> 与指向的类型无关;转换要求 reinterpret_cast、C 样式
- vc2008错误:不能将参数 1 从“const char [5]”转换为“LPCTSTR”。。。。各种数据类型之间的转换
- struts2.X心得7--接收请求参数和struts类型转换介绍以及案例分析
- 对象不能从DBNull 转换为其他类型的解决方法
- 泛型技巧系列:如何提供类型参数之间的转换
- 异常详细信息: System.InvalidCastException: 对象不能从 DBNull 转换为其他类型——的解决方法
- 类型的设计--方法:构造器、操作符、转换操作符和参数
- C#调用VC DLL接口函数参数类型转换的方法
- struts2的常量、动态方法调用、接受请求参数处理、类型转换
- 如何编码之使用接口作为方法的参数类型
- MVC area出现“找到多个与名为“Home”的控制器匹配的类型”错误的解决方法
- 如何将数组转换为多个参数赋值给另一个函数或方法