[英]Passing multi parameters from view to controller using array
我想在不使用Model的情況下發布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();}
如何使用數組將所有參數(復選框)發送到控制器。 我批評你所有的解決方案。
動態地你可以像下面的代碼一樣:
@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)
{
}
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
和U4
然后根據answer
的值,您可以確定每個問題的真或假
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.