0

我的网址如下:

{控制器}/{动作}/{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”)?

4

2 回答 2

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
于 2012-08-07T15:24:30.220 回答
1

它没有返回任何东西。

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

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

于 2012-08-07T15:32:16.763 回答