Asp.net mvc 将值从视图传递到控制器

Asp.net mvc 将值从视图传递到控制器,asp.net-mvc,vb.net,Asp.net Mvc,Vb.net,我希望在单击“提交”时传递下拉框中选择的值。相反,它传递的是一个空值,我不知道为什么。感谢您的帮助 控制器: Namespace DHR Public Class WorkSampleController Inherits System.Web.Mvc.Controller Private dbQ As QuarterDBContext = New QuarterDBContext Private db As WorkSampleDBConte

我希望在单击“提交”时传递下拉框中选择的值。相反,它传递的是一个空值,我不知道为什么。感谢您的帮助

控制器:

Namespace DHR
  Public Class WorkSampleController
        Inherits System.Web.Mvc.Controller
        Private dbQ As QuarterDBContext = New QuarterDBContext
        Private db As WorkSampleDBContext = New WorkSampleDBContext

Function Index() As ViewResult
            Dim quarterList As New List(Of String)()
            Dim QuarterQry = From d In dbQ.getQuarter
                             Order By d.ID
                             Select d.Quarter
            quarterList.AddRange(QuarterQry.Distinct())
            ViewBag.Quarter = New SelectList(quarterList)   
            Return View(db.WorkSample.ToList())
  End Function 
  <HttpPost()>
            Function Index(ByVal quarterID As Integer) As ActionResult
                Dim quarter As String = "null"
                If quarterID = 1 Then
                    quarter = "Dec, Jan, Feb"
                End If
                ViewBag.test = quarter
                Return View()
            End Function
视图:


你确定你的代码真的在你的post方法中传递吗?因为当我一个月前开始使用asp.net时,我遇到了一个问题

我通过用Html.beginformost替换Html.BeginForm解决了这个问题

我不确定它是否会奏效

编辑: 我也已经用过了:

 Dim test1 As String = request("SampleType")
 Dim test2 As String = request("Quarter")

你确定你的代码真的在你的post方法中传递吗?因为当我一个月前开始使用asp.net时,我遇到了一个问题

我通过用Html.beginformost替换Html.BeginForm解决了这个问题

我不确定它是否会奏效

编辑: 我也已经用过了:

 Dim test1 As String = request("SampleType")
 Dim test2 As String = request("Quarter")

我不确定,但是如果你用C做的话,你可以使用FormCollection作为ActionResult的inparameter并从中获取值。我会这样做的

public ActionResult Index(FormCollection coll){
      var value1 = coll["SampleType"];
      var value1 = coll["Quarter"];
}


如果它在VB中不起作用,我很抱歉,但它是否值得一试?

我不确定,但是如果你在C中使用它,你可以使用FormCollection作为ActionResult的参数,并从中获取值。我会这样做的

public ActionResult Index(FormCollection coll){
      var value1 = coll["SampleType"];
      var value1 = coll["Quarter"];
}


很抱歉,如果它在VB中不起作用,但可能值得一试?

**这使它起作用,我们没有使用正确的值传递。使用Html.BeginFormPost、ViewFolder、FormMethod.get**这使得它能够工作,我们没有使用正确的值传递。使用Html.BeginFormPost、ViewFolder、FormMethod.get