首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mvc 3音乐商店教程:

mvc 3音乐商店教程:
EN

Stack Overflow用户
提问于 2012-08-08 17:53:10
回答 3查看 924关注 0票数 0

我正在通过音乐商店教程学习ASP.net MVC 3--但是把C#翻译成VB。http://www.asp.net/mvc/tutorials/mvc-music-store/mvc-music-store-part-2

乔恩·加洛韦说:"ASP.NET MVC的默认路由约定是将动作方法名称后面的URL段作为一个名为“ID”的参数。

我的StoreController中有以下代码

代码语言:javascript
复制
  Function Details(id As Integer) As String
        Return "Store Details, ID= " & i.ToString
    End Function

但是,当我输入url http://localhost:53867/store/details/5时,会得到以下服务器错误

参数字典包含非空类型'System.Int32‘的参数'i’的空项,用于'MvcMusicStore.MvcMusicStore.StoreController'.中的方法'System.String Details(Int32)‘。可选参数必须是引用类型、可空类型,或者声明为可选参数。参数名称:参数

基于上面对默认ID参数的加洛韦描述,我希望此方法将URL末尾的5作为(默认)参数。为什么它是空的?我遗漏了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-08 18:02:01

在您的代码中,我注意到了一些您可能需要检查的内容。

  1. 在函数体中,调用i.ToString,但传入id作为参数。
  2. VB不需要函数参数的ByVal序言吗?
  3. 这是来自您的项目的复制/粘贴,还是您键入的?听起来,5被分配给在默认路由中的ID,但是您似乎使用i作为参数,它是空的,因为它不是路由的一部分,也不是作为querystring参数传递的。
票数 1
EN

Stack Overflow用户

发布于 2012-08-08 18:09:08

我不知道VB,但我确实使用了(和其他一些东西) C#。

至于您的错误,我想知道VB是如何翻译路线的?在您拥有的链接中,在获得“”之前,有一个例子是“/Store/Browse? the =Disco”。你的应用程序成功了吗?

我可能错了,但看起来这个链接将有助于解决路由问题,特别是清单4(带有可空参数的索引操作)。

其要点是..。

代码语言:javascript
复制
Function Details(ByVal id? As Integer) As String
  Return "Store Details, ID= " & i.ToString
End Function

...might为你工作,或者至少类似的事情。

票数 0
EN

Stack Overflow用户

发布于 2014-09-15 09:35:06

错误在于您将i替换为id,这只是一个拼写错误的变量名。

代码语言:javascript
复制
Function Details(ByVal id As Integer) As String
      Return "Store Details, ID= " & id.ToString()
End Function
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11870308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档