我正在使用音乐商店教程学习ASP.net MVC 3 - 但是将C#翻译成VB。 http://www.asp.net/mvc/tutorials/mvc-music-store/mvc-music-store-part-2
Jon Galloway说“ASP.NET MVC的默认路由约定是将操作方法名称后面的URL段视为名为”ID“的参数。
我的StoreController中有以下代码
Function Details(id As Integer) As String
Return "Store Details, ID= " & i.ToString
End Function
但是当我输入网址http://localhost:53867/store/details/5
时,我收到以下服务器错误
参数字典包含参数“i”的空条目 方法'System.String的非可空类型'System.Int32' 详细信息(Int32)'在'MvcMusicStore.MvcMusicStore.StoreController'中。一个 可选参数必须是引用类型,可空类型或be 声明为可选参数。参数名称:参数
根据上面对默认ID参数的Galloway描述,我希望这种方法将URL末尾的5作为(默认)参数。为什么它会出现空?我错过了什么?
答案 0 :(得分:1)
我在您的代码中注意到的一些您可能想要检查的内容。
答案 1 :(得分:0)
我不懂VB,但我会使用C#等工作。
就你的错误而言,我想知道VB是如何翻译路线的?在您拥有的链接中,在获得“商店详细信息”之前,有一个“/ Store / Browse?genre = Disco”的示例。这在您的应用中有效吗?
我可能错了,但看起来这个link将有助于路由问题,特别是清单4 (带有可空参数的索引操作)。
其中的要点是......
Function Details(ByVal id? As Integer) As String
Return "Store Details, ID= " & i.ToString
End Function
......可能对你有用,或者至少对你有用。
答案 2 :(得分:0)
错误是你输入我而不是 id ,只是一个拼写错误的变量名称
Function Details(ByVal id As Integer) As String
Return "Store Details, ID= " & id.ToString()
End Function