我想在不使用模型的情况下发布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();}
如何使用数组将所有参数(复选框)发送到控制器。我批评你所有的解决方案。
答案 0 :(得分:3)
动态地你可以像下面的代码一样:
@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)
{
}
答案 1 :(得分:0)
TBH最好使用模型进行绑定。
但是,既然你明确表示你不想那么,那么如果没有特定的模型就会这样做
在你的剃刀视图中,给每个复选框指定相同的名称(也与操作中的参数名称相同)和值这样:
@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)
{
}
如果说用户选中了One
,two
和four
,那么在answer
参数中,您将获得U1
,U2
和{ {1}}
然后根据U4
中的值,您可以确定每个问题的真或假