【问题标题】:Dropdownlistfor MVC ASP.Net VB用于 MVC ASP.Net VB 的下拉列表
【发布时间】:2014-08-01 09:04:37
【问题描述】:

我将数据发送到我的下拉列表,我可以选择该数据,但是当我单击按钮转到发布方法时出现错误:

“'System.InvalidOperationException' 类型的异常发生在 System.Web.Mvc.dll 但未在用户代码中处理

附加信息:具有键的 ViewData 项 “SelectedItem”的类型为“System.String”,但必须是类型 'IEnumerable'。”

我认为 dropdownlistfor 中剃刀视图中的第一个值是选定的值,第二个是要显示的值列表,但现在我不知道下拉列表的工作原理;/

你能帮帮我吗?

我的型号代码:

Public Class NewProcessIndex

    Public Property Name As String
    Public Property DataSource1 As String

    Public Property SelectedItem As String
    Public Property Items As IEnumerable(Of SelectListItem)

End Class

我的控制器代码:

<HttpGet>
Function AddNewProces() As ActionResult

    Dim listBoxData = New NewProcessIndex With {
        .Items = {
            New SelectListItem() With {.Value = 1, .Text = "item 1"},
            New SelectListItem() With {.Value = 2, .Text = "item 2"},
            New SelectListItem() With {.Value = 3, .Text = "item 3"}
        }
    }

    Return View(listBoxData)
End Function

<HttpPost>
Function AddNewProces(newProcesData As NewProcessIndex) As ActionResult

    newProcesData.DataSource1 = newProcesData.SelectedItem

    Return View(newProcesData)
End Function

最后是我的视图代码:

@ModelType NewProcessIndex

<h2>AddNewProces</h2>
@Using (Html.BeginForm("AddNewProces", "Admin", FormMethod.Post))

    @<div class="form-horizontal">

        @Html.LabelFor(Function(m) m.Name)
        @Html.TextBoxFor(Function(m) m.Name)
        @Html.ValidationMessageFor(Function(m) m.Name)

        @Html.DropDownListFor(Function(x) x.SelectedItem, Model.Items)

         <input type="submit" value="AddNewProces" />
    </div>

End Using

@If FormMethod.Post Then
    @<p>@Model.Name</p>
    @<p>@Model.DataSource2</p>
End If

编辑: 有趣的事情...... dropdownlistfor 不起作用,但 listboxfor 以这种形式工作:

@Html.ListBoxFor(Function(x) x.SelectedItem, Model.Items)

【问题讨论】:

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


    【解决方案1】:

    可能是我将模型返回视图是一个问题,或者我玩得很开心

    @If isPost Then
     ...
    End If
    

    我不确定是什么导致了错误,但现在我正在使用 ListBoxFor 并且一切正常......奇怪:) 如果有人仍然想解释为什么它不能按预期工作(以及我期待它起作用)然后马上回答我:)

    【讨论】:

      猜你喜欢
      • 2014-11-25
      • 1970-01-01
      • 2016-08-03
      • 1970-01-01
      • 2017-10-15
      • 2012-05-27
      • 1970-01-01
      相关资源
      最近更新 更多