Mvc 3表单post参数:如何通过控制器中的参数使用name =“Attribute.AttributeID”到达ddl

时间:2011-10-06 18:50:21

标签: asp.net-mvc-3 parameters

我有一个如下所示的下拉列表:

@Html.DropDownListFor(
        x => x.Attribute.AttributeID,
        new SelectList(Model.Attributes, "AttributeID", "Name")
)

在我的控制器中,我尝试过参数如attributeId和attribute_attributeId,这是我的代码:

[HttpPost]
public ActionResult Index(int productId, int attributeId)

(顺便说一句,我也收到了查询字符串中的ProductID)

我的ddl的输出是... id =“Attribute_AttributeID”name =“Attribute.AttributeID”...

我也试过这个:

@Html.DropDownListFor(
        x => x.Attribute.AttributeID,
        new SelectList(Model.Attributes, "AttributeID", "Name"),
        null,
        new { id = "attributeId", name = "attributeId" }
    )

但是然后id才会改变,而不是两者......

所以我的问题是如何在不写 x =>之类的内容的情况下能够到达dll? ddl中的x.SelectedAttributeID

1 个答案:

答案 0 :(得分:0)

[HttpPost]
public ActionResult Index(Attribute attribute)
{
   // attribute will have the attributeId property
}