Если два заявления, почему один не выполняется? - PullRequest
0 голосов
/ 19 апреля 2009

У меня есть два утверждения if, и мой проект видит одно, а не другое. Вот код:

If (IsPostBack) Then
  HandleUploadedFile()
End If

Dim savePath As String = "Images\ "

If (fileUpload.HasFile) Then
  Dim fileName As String = fileUpload.FileName
  savePath = Server.MapPath(savePath) + fileName
  fileUpload.SaveAs(savePath)
  Me.Label1.Text = "Your file was saved as " & fileName
  adp.Insert(fileUpload.FileName)
  Me.Label1.Text = "You did not specify a file to upload."
End If

Когда я прослеживаю свой код, я обнаруживаю, что он переходит ко второму if, а затем переходит в конец, если без выполнения кода внутри условного выражения.

Ответы [ 2 ]

1 голос
/ 19 апреля 2009

Не уверен, правильно ли я понимаю вопрос, но вы уверены, что fileUpload.HasFile имеет значение true?

1 голос
/ 19 апреля 2009

Что происходит в HandleUploadedFile?

Если ошибка не захвачена - вы можете выпасть из своей рутины (никогда не достигнув второго, если).

Если fileUpload не объявлен ... тот же сценарий.

Когда вы проходите через него, вы видите, как он прыгает до конца?

Изменить: У вас действительно будет загрузка файла, когда страница НЕ будет опубликована? Может быть, вы действительно хотите поместить весь блок кода в блок кода If IsPostBack?

Edit2: Вы можете просто добавить:

Public Sub HandleUploadedFile

над этой строкой:

Dim savePath As String = "Images\ "

И добавить:

End Sub

ниже этой строки:

End If
...