在运行时在Razor View(ASP.NET MVC3)中进行模型绑定

时间:2011-11-30 11:33:53

标签: data-binding razor

我的索引方法呈现类型为强类型的视图(InitDetails),自动生成的代码如下所示:

@ModelType BookingDeamon.InitDetails

@Using Html.BeginForm()
@Html.ValidationSummary(True)
@<fieldset>
    <legend>Reservation</legend>
        <div class="editor-label">
            @Html.LabelFor(Function(model) model.Pickup)
        </div>
        <div class="editor-field">
            @Html.EditorFor(Function(model) model.Pickup)
            @Html.ValidationMessageFor(Function(model) model.Pickup)
        </div>
    <p>
        <input type="submit" value="Create" onclick="SubmitMe()" />
    </p>
</fieldset>
End Using

在上面的表格中,我想显示一个选择列表框,因为我将通过JQuery控制这个选择列表,根据不同的东西加载不同的内容。

我希望能够将该选择列表框的值作为分拣值传递。

当我尝试执行以下操作时:

@Html.DropDownListFor(Function(model) model.Pickup)

我收到以下错误:

Overload resolution failed because no accessible 'DropDownListFor' accepts this number of argument

用户点击提交按钮是否可行,而不是将Pickup(文本框)值带到控制器;它从下拉列表框中获取值并将其提交给控制器?

1 个答案:

答案 0 :(得分:0)

试试这个

 @Html.DropDownListFor(ModelType=>Model.Pickup, (IEnumerable<SelectListItem>)ViewData["Pickup"],"--Select--") 
控制器中的

var Pickup= GetPickupList();
var PickupList= new SelectList(Pickup, "value", "Text", Pickup.DefaultSelectedValueIfAnyNeeded);
ViewData["Pickup"] = PickupList

编写函数GetPickupList() 返回一个Pickup值列表。