我不知道我做错了什么,或者是什么导致了这个错误。当我将此表单提交给控制器时,控制器会收到2个空字段:
以下是视图中的表单:
@Using Html.BeginForm("contactSearch", "search", FormMethod.Post)
@Html.TextBox("SearchString")
@Html.DropDownList("opportunite", "Choisissez une opportunité")
@<input type="submit" value="Submit!" />
End Using
这是控制器:
<HttpPost()>
Function contactSearch(ByVal search As String, ByVal opportunite As opportunite) As ViewResult
If opportunite Is Nothing Then
ModelState.AddModelError("opportunite", "Opportunite is empty")
ViewBag.opportunite = New SelectList(db.opportunite, "idOpportunite", "nomOffre")
Return View()
End If
...
我还有一点问题,如果我写的话:
Function contactSearch(ByVal searchString As String, ByVal opportunite As Integer)
如果其中一个字段为空,我收到此错误:参数字典包含参数'opportunityite'的空条目...
所以,我必须解决的唯一方法是使用下面的代码。有没有更好的方法来解决这个问题?
Function contactSearch(ByVal search As String, ByVal opportunite As opportunite) As ViewResult
Dim opport As Integer = 0
Try
opport = Val(Request("opportunite"))
Catch ex As Exception
End Try
If opport = 0 Then
答案 0 :(得分:1)
您错误地命名了您的操作参数。应该是这样的:
<HttpPost()>
Function contactSearch(ByVal searchString As String, ByVal opportunite As String) As ViewResult
...
请注意,2个参数的类型为String。在您的代码中,您已为第二个参数使用了一些自定义opportunite
类型,但这没有意义,因为DropDownList仅发送所选值。您不能指望它绑定到复杂类型。
答案 1 :(得分:1)
您是否获得了'搜索'值?。
尝试传递表单集以查看发布的内容
public ActionResult CreateMarketingType(FormCollection form)
{
...
}