Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ASP.net MVC 3中,将表单数据发送到控制器操作的不同方式有哪些?_C#_Asp.net Mvc_Forms_Asp.net Mvc 3_Http Post - Fatal编程技术网

C# 在ASP.net MVC 3中,将表单数据发送到控制器操作的不同方式有哪些?

C# 在ASP.net MVC 3中,将表单数据发送到控制器操作的不同方式有哪些?,c#,asp.net-mvc,forms,asp.net-mvc-3,http-post,C#,Asp.net Mvc,Forms,Asp.net Mvc 3,Http Post,我想发布一个表单数据,它有网格类型的布局,每行中有一列包含dropdownlist。下拉列表中的选定值映射到该行的项目id 我想知道在这种情况下,将这些数据发布到控制器操作的不同方式是什么 作为单个参数传递已被忽略,因为我的表单将具有动态数据,并且可能有n个记录。我的想法正确吗 想到FormCollection,这是正确的选择吗?像往常一样,我会从定义视图模型开始: public class MyViewModel { public string SelectedValue { get;

我想发布一个表单数据,它有网格类型的布局,每行中有一列包含dropdownlist。下拉列表中的选定值映射到该行的项目id

我想知道在这种情况下,将这些数据发布到控制器操作的不同方式是什么

作为单个参数传递已被忽略,因为我的表单将具有动态数据,并且可能有n个记录。我的想法正确吗


想到FormCollection,这是正确的选择吗?

像往常一样,我会从定义视图模型开始:

public class MyViewModel
{
    public string SelectedValue { get; set; }
    public IEnumerable<SelectListItem> Values { get; set; }
}
最后,这将发布所选的值:

[HttpPost]
public ActionResult Index(IEnumerable<MyViewModel> model)
{
    ...    
}
[HttpPost]
公共行动结果指数(IEnumerable模型)
{
...    
}

@Darin:有点疑问,为每行传递“IEnumerable value”不是多余的吗?我们不能为整个视图发送一次此列表,因为所有行的列表都相同吗?@JPReddy,是的,当然,如果每行必须显示相同的下拉列表。也许我误解了这个问题,并假设每一行应该使用不同的下拉列表。@Darin:即使我假设所有行都使用相同的下拉列表,在这种情况下,我们应该如何设计模型以包含所有行的单个列表?有什么想法吗?@JPReddy,你把我在另一个视图模型中展示的视图模型包装起来。主视图模型将包含Values属性(对于整个页面来说是唯一的),并且它将包含IEnumerable属性,其中包含行的数据。@Darin:想听听您对我下面的答案的看法吗
@model MyViewModel
<tr>
    <td>
        @Html.DropDownListFor(
            x => x.SelectedValue,
            new SelectList(Model.Values, "Value", "Text")
        )
    </td>
</tr>
[HttpPost]
public ActionResult Index(IEnumerable<MyViewModel> model)
{
    ...    
}