簡體   English   中英

使用數組將多個參數從視圖傳遞到控制器

[英]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)
{

}

如果說用戶選中了Onetwofour ,那么在你的answer參數中你會得到U1U2U4

然后根據answer的值,您可以確定每個問題的真或假

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM