使用数组将多个参数从视图传递到控制器

Passing multi parameters from view to controller using array

我想 post 55 到 100 个项目,这些项目在不使用模型的情况下从视图到我的控制器可能是假的或真的。这是我在 Razor View 中的代码:

@using(Html.BeginForm( "User","User",FormMethod.Post,new{enctype="multipart/form-data"}))
{

    <input type="checkbox" name="U1">Choice one</input>
    <input type="checkbox" name="U2">Choice two</input>
    <input type="checkbox" name="U3">Choice three</input>
    <input type="checkbox" name="U4">Choice four</input>

....

<input type="checkbox" name="U55">Choice fifty five</input>

<button type="submit">Send</button>
                               }

控制器:

[HttpPost]
public async Task<ActionResult> User(Array....)
{
return view();}

如何使用数组将所有参数(复选框)发送到我的控制器。我感谢你所有的解决方案。

TBH 最好使用模型进行绑定。

但是,既然你明确表示你不想那么,这将是没有特定模型的方法

在你的 razor 视图中,为每个复选框指定相同的名称(也与你的操作中的参数名称相同)和一个值

这样:

@using(Html.BeginForm( "User","User",FormMethod.Post,new{enctype="multipart/form-data"}))
{

    <input type="checkbox" name="answer" value="U1">Choice one</input>
    <input type="checkbox" name="answer" value="U2">Choice two</input>
    <input type="checkbox" name="answer" value="U3">Choice three</input>
    <input type="checkbox" name="answer" value="U4">Choice four</input>

....

<input type="checkbox" name="answer" value="U55">Choice fifty five</input>

<button type="submit">Send</button>
}

那么在你的行动中:

[HttpPost]
public async Task<ActionResult> User(string[] answer)
{

}

如果说用户选中了 Onetwofour,那么在您的 answer 参数中您将得到 U1U2U4

然后根据answer中的值判断每道题的真假

动态地你可以像下面的代码那样做:

@using(Html.BeginForm( "User","User",FormMethod.Post,new{enctype="multipart/form-data"}))
{

    <input type="checkbox" name="answer[]" value="@dynamicValue">@dynamicValue</input>

    <button type="submit">Send</button>
}

[HttpPost]
public async Task<ActionResult> User(string[] answer)
{

}