MVC如何避免控制器方法接收到的值不能被轉換為引數型別

weixin_33816946發表於2019-01-08

假設控制器方法引數型別是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());
        }

相關文章