あなたは絶対に通常のフォームはあなたのjsの中のデータの変数と(非アヤックス)を提出行いたい場合は、あなたがのためのいくつかのフォーム入力要素を構築することができますjs変数にあるデータを取得し、javascriptを使用してこのフォームを送信することができます。要素の名前がアクションメソッドのパラメータと一致する限り、モデルバインドは機能します。
ここでは、jQueryを使用して、ボタンクリックイベントで文字列のリストを送信する簡単な例を示します。
$(function() {
var flags = ["aa", "bb", "cc"];
var targetUrl="@Url.Action("Summary","Home")";
$("#SubmitButton").click(function(e) {
//First build a form element and set the action attribute value
var $f = $("<form></form>").attr("action",targetUrl).attr("method","post");
//Loop throug the string and create an input element for each item
$.each(flags, function(a, b) {
var $el = $("<input type='hidden' name='flagsChecked' />").attr("value",b);
//Add the input element to the form
$f.append($el);
});
//Add the form to the page and submit the form
$f.appendTo("body").submit();
});
});
であり、httpポストアクションメソッドでは、ビューを返すことができます。
[HttpPost]
public ActionResult Summary(List<string> flagsChecked)
{
return View("Summary");
}
あなたのコードはいくつかのデータをUDPATEする場合、私は強くあなたがP-R-G patternに従うと、リダイレクト応答を返すことをお勧めします。
[HttpPost]
public ActionResult Summary(List<string> flagsChecked)
{
return RedirectToAction("Summary");
}
フォームは内の値を含む入力が含まれている場合は、通常のポストを行うことができますjavascriptのGETリクエストでこれを行うの一例
1配列 –
それはアイデアですが、少し原始的ではありませんか? (ちょっと好奇心) –
フォームを送信する標準的な方法はプリミティブですか?また、ajax呼び出しを行うこともできますが、使用しないビューを返すことができます。それ以外の場合は成功を示す単純な 'JsonResult'を返し、成功した場合は' location.href'を使用して 'success'コールバック –