Model 如果我将参数从id重命名为albumId,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 =

我正在关注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 = "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创建一个新路由?是的,您必须具有与操作的参数名称匹配的路由。