Model 如果我将参数从id重命名为albumId,ASP.NETMVC3会给我一个异常
我正在关注ASP.NETMVC3应用程序音乐商店,我注意到了这一点 这是我在商店控制器中的详细操作Model 如果我将参数从id重命名为albumId,ASP.NETMVC3会给我一个异常,model,view,asp.net-mvc-3,controller,Model,View,Asp.net Mvc 3,Controller,我正在关注ASP.NETMVC3应用程序音乐商店,我注意到了这一点 这是我在商店控制器中的详细操作 public ActionResult Details(int id) { var album = new Album() { Title = "Dark Side of The Moon" + id }; return View(album); } //View @model MvcMusicStore.Models.Album @{ ViewBag.Title =
public ActionResult Details(int id)
{
var album = new Album() { Title = "Dark Side of The Moon" + id };
return View(album);
}
//View
@model MvcMusicStore.Models.Album
@{
ViewBag.Title = "Details";
}
<h2>Album Name: @Model.Title</h2>
public ActionResult详细信息(int-id)
{
var album=new album(){Title=“月亮的黑暗面”+id};
返回视图(相册);
}
//看法
@型号MvcMusicStore.Models.Album
@{
ViewBag.Title=“详细信息”;
}
唱片集名称:@Model.Title
它工作正常,但是,当我尝试将参数名称从“id”更改为“albumId”时,出现以下错误:
参数字典包含一个
的参数“albumid”为空项
不可为空的类型“System.Int32”
方法“System.Web.Mvc.ActionResult”
详细信息(Int32)'in
“MvcMusicStore.Controllers.StoreController”。
可选参数必须是
引用类型、可为Null的类型或be
声明为可选参数。
参数名称:参数
为什么使用某个名称的变量有效,但使用另一个名称会产生此错误?MVC是否使用变量名“id”自动执行某些操作?您的路由配置可能有{controller}/{action}/{id},其中应该有{controller}/{action}/{albumid}
请尽快查看您的global.asax是的,这是正确的。以下是我的global.asax中的内容。这是否意味着如果我想使用albumId作为参数,我必须为Store controller创建一个新路由?是的,您必须具有与操作的参数名称匹配的路由。