MVC如何避免控制器方法接收到的值不能被转换为参数类型

假设控制器方法参数类型是int:

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());
        }

MVC如何避免控制器方法接收到的值不能被转换为参数类型

时间: 2024-10-10 19:26:41

MVC如何避免控制器方法接收到的值不能被转换为参数类型的相关文章

记录学习MVC过程,控制器方法和视图(一)

1//一个简单的注册类(未做任何处理,后续加上其他内容)public class UserInfo { public virtual int Id { get; set; } public virtual string Name { get; set; } public virtual int Age { get; set; } } 2.MVC和aspx最大的区别,MVC返回的是一个方法,地址栏里其实是方法名,而不再是页面 #region 用户列表 public ActionResult Ind

spring mvc 坑之PUT方法接收不到请求参数

spring mvc老是接收不到前台传递来的参数,搞了半天才知道spring mvc对PUT方法支持不好,难受!在web.xml文件中加入下面的过滤器应该可以解决: <filter> <filter-name>HttpMethodFilter</filter-name> <filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class> <

spring mvc中的控制器方法中的参数从哪里传进来?

编写控制器方法的时候很奇怪,spring是怎么知道你控制器方法的参数类型,并且注入正确的对象呢? 比如下面这样 @RequestMapping(value="/register", method=GET) public String showRegistrationForm(Model model) { model.addAttribute(new Spitter()); return "registerForm"; } 他怎么知道Model对应啥呢? 其实,spr

spring mvc 注解访问控制器以及接收form数据的方式,包括直接接收日期类型及对象的方法

Spring 中配置扫描器 <!-- springmvc的扫描器--> <context:component-scan base-package="com.beifeng.servlet"/> 建立Controller 类 @Controller @RequestMapping(value="/sys/") public class RegController { @RequestMapping(value="reg.do"

004.MVC视图、辅助方法

一.视图基础- 视图定义: 用户界面,是显示应用程序用户界面(UI)组件 Web应用程序:页面 作用: 1.输出/显示模型数据 2.出入提交 视图建议在View文件夹位置存储视图 视图引擎(了解):本意发动机,这里指的是:处理视图的软件(框架内部) ASP.NET Web窗体提供了一种视图引擎,称为Web窗体引擎 ASP.NET MVC1及MVC2版本中支持Web窗体引擎 ASP.NET MVC3版本除了支持Web窗体引擎,还提供了一种新的视图引擎,称为Razor(视图)引擎 Razor引擎更加

MVC导出数据到EXCEL新方法:将视图或分部视图转换为HTML后再直接返回FileResult

MVC导出数据到EXCEL新方法:将视图或分部视图转换为HTML后再直接返回FileResult 导出EXCEL方法总结:MVC导出数据到EXCEL的方法有很多种,常见的是: 1.采用EXCEL COM组件来动态生成XLS文件并保存到服务器上,然后转到该文件存放路径即可:优点:可设置丰富的EXCEL格式,缺点:需要依赖EXCEL组件,且EXCEL进程在服务器中无法及时关闭,以及服务器上会存留大量的不必要的XLS文件: 2.设置输出头为:application/ms-excel,再输出拼接的HTM

spring mvc 控制器方法传数组对象的一些经验

因为项目需要在一个表单里面提交多个对象,比较好的做法就是直接在控制器方法参数里传一个数组. 由于Spring mvc框架在反射生成控制方法的参数对象的时候会调用这个类的getDeclaredConstructor方法来获得构造函数, 但是一直报NoSuchMethodException的异常. 根据这个方法的jdk文档,这个类是一个数组对象时,这个方法会抛出java.lang.NoSuchMethodException,因为接口.数组类.void.基本类型没有构造函数. 同事后来给我支了两招,使

spring mvc 控制器方法传递一些经验对象的数组

由于该项目必须提交一个表单,其中多个对象,更好的方法是直接通过在控制器方法参数的数组. 因为Spring mvc框架在反射生成控制方法的參数对象的时候会调用这个类的getDeclaredConstructor方法来获得构造函数, 可是一直报NoSuchMethodException的异常. 依据这种方法的jdk文档,这个类是一个数组对象时,这种方法会抛出java.lang.NoSuchMethodException,由于接口.数组类.void.基本类型没有构造函数. 同事后来给我支了两招,使用A

springmvc_控制器方法如何接收客户端的数据

参数单独接收 参数整体接收 如果客户端参数的name的值与控制器方法参数名不一致 如果User类中有Car类型的属性 原文地址:https://www.cnblogs.com/Tunan-Ki/p/11784921.html