如何从vb.net MVC中的URL获取Id参数?

时间:2018-07-03 04:59:13

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

我正在编写代码以使用JavaScript和VB.NET MVC执行CRUD操作。我需要一种方法来将Controller中的参数发送到View,但是我不知道如何从URL中捕获值。

以下是我的控制者:

' GET: Bodega/Index/5
    Function Edit(ByVal id As Integer, ByVal collection As FormCollection) As ActionResult
        Try
            Dim constr As String = ConfigurationManager.ConnectionStrings("conexion").ConnectionString
            Using con As New SqlConnection(constr)
                Using cmd As New SqlCommand("SELECT * FROM bodega WHERE id = @Id")
                    cmd.Parameters.AddWithValue("@Id", id)
                    cmd.Connection = con
                    Dim data As New List(Of Bodega)()
                    con.Open()
                    Using sdr As SqlDataReader = cmd.ExecuteReader()
                        While sdr.Read()
                            data.Add(New Bodega() With {
                            .id = Convert.ToInt32(sdr("id")),
                            .nombre = sdr("nombre").ToString(),
                            .ubicacion = sdr("ubicacion").ToString(),
                            .lugar = sdr("lugar").ToString(),
                            .lat = sdr("lat").ToString(),
                            .lng = sdr("lng").ToString()
                        })
                        End While
                    End Using
                    con.Close()
                    Return View("Index", id)
                End Using
            End Using
        Catch e As Exception
            Return RedirectToAction("Index")
        End Try
    End Function

我正在通过return语句将ID发送到视图,但是在视图中我不知道可以使用什么命令。

URL格式为:

  

localhost / Bodega / Edit / 5

我需要捕获ID5。如果可能的话,保存到隐藏的输入中或发送到javascript代码以加载输入的数据预加载。

1 个答案:

答案 0 :(得分:0)

在调用“编辑”操作的“编辑”视图中,确保将路由值称为id,以便它可以绑定到id参数。另外,您似乎没有使用FormCollection参数。您是否要将要创建的新Bodega实例传递给视图而不是ID?我猜您正在寻找要在编辑视图中编辑的Bodega吗?