
###前提・実現したいこと
C#のMVCについての質問です。
formタグで囲まれたhtmlとContlloerのメソッドを用意しました。
このときにcheckboxにチェックした値とチェックしたcheckboxと対になるhiddenの値をContlloerに渡す方法を教えてください。
###Html
@foreach (var item in Model)
{
###Contlloer
public ActionResult Result(string[] hidName, string[] cheboxName){
//何かしらの処理
}
###例
cheboxName[1]とcheboxName[2]にチェックをつけて送信する際、hidName[1]、cheboxName[1]、hidName[2]、cheboxName[2]の値をコントローラーに渡し、hidName[0]、cheboxName[0]を渡さないようにしたいです。
<input type="hidden" name="hidName[0]" value="…" />
<input type="checkbox" name="cheboxName[0]" value="…" />
<input type="hidden" name="hidName[1]" value="…" />
<input type="checkbox" name="cheboxName[1]" value="…" />
<input type="hidden" name="hidName[2]" value="…" />
<input type="checkbox" name="cheboxName[2]" value="…" />
###試したこと
このときにチェックボックスにチェックされた複数の値(item.chkBoxVal)と対応するhidNameの複数の値(item.hidVal)をConrlloerのメソッドに渡す方法を教えてください。
やり方としてはJavaScriptとajaxを使う方法しかないでしょうか。ajax以外の方法があれば教えてください。
(ajaxでは例えば、以下のような処理を行う?
以下のようなコードでできそうかも教えて頂ければ幸いです。
var formData = new FormData();
$('input[name=chkboxName]:checked').each(function(index){
var index = $('input[name='cheboxName']').index(this);
formData.append( 'hidName', $('input[name='hidName']').eq(index).val());
formData.append( 'cheboxName', this.val());
}
$.ajax({
url: 'Result',
type: 'POST',
datatype: 'json',
data: formData
});
)
以上、よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー