如何从MVC3表单上的SELECT返回值

时间:2011-05-07 06:21:19

标签: html asp.net-mvc

我有MVC3表格。我的源代码如下所示:

<input id="Status_RowKey" name="Status.RowKey" size="10" type="text" value="" />
<select class="editor-select" id="StatusDescription" name="Status.Description"style="width: 99%">
  <option value="ABC">abc</option>
  <option value="DEF">def</option>
</select>

问题是看起来Status.Description的价值永远不会被发回。它只是NULL,表单上的所有其他值都被发回。我改变它看起来改变的值但从未被发送。当它是一个选择时我是否必须做一些不同的事情来返回所选的值?

2 个答案:

答案 0 :(得分:1)

您始终可以使用var myValue = Request.Form["Status.Description"]

答案 1 :(得分:0)

假设您有以下视图模型(如果没有,则可以定义它们):

public class StatusViewModel
{
    public string RowKey { get; set; }
    public string Description { get; set; }
}

以及POST此表单的控制器操作:

[HttpPost]
public ActionResult Edit([Bind(Prefix = "Status")]StatusViewModel model)
{
    // model.RowKey and model.Description will be correctly bound here
    ...
}

您还可以使用环绕视图模型:

public class SomeViewModel
{
    public StatusViewModel Status { get; set; }
}

然后:

[HttpPost]
public ActionResult Edit(SomeViewModel model)
{
    // model.Status.RowKey and model.Status.Description will be correctly bound here
    ...
}