为什么我的MVC ID返回Null(或Nothing)?

时间:2012-08-07 15:12:00

标签: asp.net-mvc vb.net asp.net-mvc-3

我的网址如下:

{控制器} / {行动} / {ID}

在这个例子中,它是:

博客/编辑/ 2

在我的代码中,我试图获取ID参数(即“2”),如下所示:

' get route
Dim routeData = httpContext.Request.RequestContext.RouteData
' get id
Dim id = If(String.IsNullOrEmpty(routeData.Values("id") = False), routeData.Values("id").ToString, Nothing)

但是,它的价值是空的。以下语句由于某种原因返回true:

If String.IsNullOrEmpty(id) = True Then

如何获取ID的值,使其不是NULL(或VB.NET中的“Nothing”)?

2 个答案:

答案 0 :(得分:1)

解决方案是改变我使用IsNullorEmpty方法的方式:

    ' get id
    Dim id = If(String.IsNullOrEmpty(routeData.Values("id")), Nothing, routeData.Values("id").ToString)

    ' if no id is set, check to see if the user owns the requested entity (company or blog)
    If String.IsNullOrEmpty(id) Then

答案 1 :(得分:1)

它没有任何回报。

您的原始帖子显示为String.IsNullOrEmpty(routeData.Values("id") = False) - 您的右括号位于错误的位置,因此String.IsNullOrEmpty将始终返回false。你应该写String.IsNullOrEmpty(routeData.Values("id")) = False

(在VB中,"xyz" = false会隐式转换为"False"。)