如何使用 POST 方法更新 vb.net 中的数据?

How to update data in vb.net using POST method?

我的 config/routes.rb

中有此代码
Rails.application.routes.draw do
  get 'timerecords/index'

  get 'employees/index'
  get 'employees/show'
  get 'employees/new'
  get 'welcome/index'
  root :to => 'employees#new'

  resources :employees do
    get '/update_info' => 'employees#update_info'
  end
  resources :timerecords
end

当我尝试保存新记录时,我的 app/controllers/employees_controller.rb

中有这个
def create
   fname = params[:fname]
   mname = params[:mname]
   lname = params[:lname]
   contactno = params[:contactno]
   address = params[:address]
   username = params[:username]
   password = params[:password]
   status = params[:status]

   @employee= Employee.create(fname: fname, mname: mname, lname: lname,
                           contactno: contactno, address: address,
                           username: username, password: password, status: status)

   redirect_to @employee
end

使用上述代码但在 class 名称下

skip_before_filter  :verify_authenticity_token

现在,我在同一个控制器

下为更新准备了这个
def update_info
   fname = params[:fname]
   mname = params[:mname]
   lname = params[:lname]
   contactno = params[:contactno]
   address = params[:address]
   username=params[:username]
   password=params[:password]
   status=params[:status]
   id=params[:id]

   @employee = Employee.find(id)

   @employee.update_attributes(id: id, fname: fname, mname: mname,
       lname: lname, contactno: contactno, address: address,
       username: username, password: password, status: status)

   redirect_to @employee
end

当我输入 link 时,它会更新得很好,但里面有额外的数字。 link 看起来像这样

http://localhost:3000/employees/0/update_info?id=39&fname=samplename&mname=samplename&lname=samplename&contactno=09236&address=sampleaddress&username=sampleuname&password=samplepass&status=ac

那里的/0/没有任何意义,但如果我不放它,更新就不会发生。我在这里尝试做的是在我的 vb.net 代码中调用 link 以使用 POST 方法更新,但我无法更新。保存很顺利,但在更新期间没有。

这是我保存时的vb.net代码

  strLink = "https://dtitdtr.herokuapp.com/employees"
  strData = "fname=" + UrlEncode(txtFName.Text.Trim.ToUpper()) + "&mname=" + UrlEncode(txtMName.Text.Trim.ToUpper()) _
                  + "&lname=" + UrlEncode(txtLName.Text.Trim.ToUpper()) + "&contactno=" + UrlEncode(txtContactNo.Text.Trim) _
                  + "&address=" + UrlEncode(txtAddress.Text.Trim.ToUpper()) + "&username=" + UrlEncode(txtUsername.Text.Trim.ToUpper()) _
                  + "&password=" + UrlEncode(Encrypt(txtPassword.Text)) + "&status=" + UrlEncode("AC")
   Try
      Save(strLink, strData)
      MessageBox.Show("Your registration has been successful!", _
                                      "Registered!", MessageBoxButtons.OK, MessageBoxIcon.Information)
      cmdClear_Click(sender, e)
      frmMenu.Show()
      Me.Hide()
  Catch ex As Exception
      MsgBox(ex.Message)
  End Try

模块

 Public Sub Save(ByVal link As String, ByVal data As String)
    request = WebRequest.Create(link)
    request.Credentials = CredentialCache.DefaultCredentials


    request.Method = "POST"
    request.ContentType = "application/x-www-form-urlencoded"
    postData = String.Format(data)
    request.ContentLength = postData.Length
    byteArray = Encoding.ASCII.GetBytes(postData)
    request.ContentLength = byteArray.Length
    dataStream = request.GetRequestStream()
    dataStream.Write(byteArray, 0, byteArray.Length)
    dataStream.Close()

    response = request.GetResponse()
    dataStream = response.GetResponseStream()
    ' Open the stream using a StreamReader for easy access.
    reader = New StreamReader(dataStream)
    webRep = (CType(response, HttpWebResponse).StatusDescription)


    dataStream = response.GetResponseStream()
    reader = New StreamReader(dataStream)

    reader.Close()
    response.Close()

End Sub

我为 更新 试过这个,但它就是行不通。

request = WebRequest.Create("http://localhost:3000/employees/40/update_info?")

不会发生任何更新...就好像它没有执行...如果用户名不存在,它会立即添加,即使我试图更新信息而不是添加。 我想问题出在我的 RAILS 代码中。我只是不知道是什么。 谁能帮帮我?

我想出了这个答案...我把我的 routes.rb 改成这个

 Rails.application.routes.draw do
   get 'timerecords/index'

   get 'employees/index'
   get 'employees/show'
   get 'employees/new'
   get 'welcome/index'
   root :to => 'employees#new'

   post '/update_info'
   resources :employees, :timerecords
end

并以这种方式获得我的 vb 代码...

request = WebRequest.Create("http://localhost:3000/employees/update_info")

并确保在元素中添加了 id。 :)