0

我在使用视图模型的 MVC 应用程序中有一个视图。视图上的所有控件都链接到视图模型(即@html.textboxfor(model => model.ViewModel.Class)),除了一个 - 我创建为级联 ddl 的选择控件,它根据上面的值进行更改DropDownListFor

如何在视图模型中包含此自定义选择中的选定值并将其作为 ? 的一部分传递回控制器FormMethod.Post

4

2 回答 2

1

您可以将其绑定为操作参数

[HttpPost]
public ActionResult YourAction(YuorModel model, string fieldname)

或者您可以从FormCollection

[HttpPost]
public ActionResult YourAction(YuorModel model, FormCollection form)
{
    var param = form["fieldname"];
}

或者只是使用控件的字段名称将此字段添加到视图模型。

于 2013-06-11T11:30:10.653 回答
0

好吧,视图模型正是为此而生的。您可以在视图中添加所需的任何属性。在这种情况下,您似乎在谈论一些 DropDown。为了有一个下拉列表,您需要 2 个属性:一个用于保存所选值的标量属性和一个IEnumerable<SelectListItem>用于保存可能值的属性。

因此,继续将这 2 个属性添加到您的视图模型中:

public string SelectedValue { get; set; }
public IEnumerable<SelectListItem> Values { get; set; }

然后为视图提供服务的控制器操作应使用所有可用值填充 Values 集合属性,然后将视图中的下拉列表绑定到这两个属性:

@Html.DropDownListFor(x => x.SelectedValue, Model.Values)

当然,由于您的 POST 操作将视图模型作为参数,您可以简单地查看model.SelectedValue属性以检索用户选择的值。

于 2013-06-11T11:31:32.113 回答