私はVS2015、MVC5を使用しています。 私は、フォームを送信:オブジェクトの配列をmvcコントローラに隠しフィールド値として渡します
@using (Html.BeginForm("Test", "Home", FormMethod.Post))
{
<input name="celo" type="hidden" value="994" />
<input name="pispis" type="hidden" value="Došel je prošel pisani Vuzem!" />
<input name="userji" type="hidden"
value="[{'ID':1,'Name':'John','TotalPayed':0,'TotalDebt':0},
{'ID':2,'Name':'George','TotalPayed':0,'TotalDebt':0},
{'ID':3,'Name':'Simon','TotalPayed':0,'TotalDebt':0},
{'ID':4,'Name':'Antonio','TotalPayed':0,'TotalDebt':0}]" />
<input type="submit" value="Submit test"/>
}
コントローラー:
public void Test(int celo, string pispis, List<User> userji)
{
}
クラスユーザー:
public class User
{
public int ID { get; set; }
public string Name { get; set; }
public int TotalPayed { get; set; }
public int TotalDebt { get; set; }
}
値 'CELO' と 'pispisは' 正しく転送されます。私はオブジェクト 'userji'の配列に問題があります - コントローラではnullです。送信フォームを使用してオブジェクトの配列をコントローラに渡す方法はありますか?
あなたがすることはできません。コレクションの各項目の入力を作成する必要があります( 'for'ループや' User'の型に対するカスタム 'EditorTemplate'を使います)。しかし、たくさんのデータをクライアントに送り、それをすべて送信する点は何ですか? POSTメソッドで必要な場合には、再度データを取得してください。 –
オブジェクトの配列はクライアント上で動的に作成されます。その配列をサーバーに渡したいのですか? – FrenkyB
POSTの方法あなたが必要とするメソッドは、 '、' 'などです。 –