asp.net MVCでアクションメソッドにJavaScriptからデータを渡すと、私のアクションメソッドにオンとオフ値を送信するために私はしたい私は今、自分のアプリケーション にブートストラップトグルスイッチを配置している
ベローは私のかみそりの構文ですJS
からコントローラにデータを渡すための
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset style="height:60px">
<legend style="text-align:center; font-size:large; font-family:'Times New Roman'; background-color:#C8E6C9; color:red">Remote On/Off</legend>
<input id="test_id" name="cmdName" type="checkbox" checked data-toggle="toggle">
</fieldset>}
私は多くの記事を検索し、AJAXはそれをベローはJS
内部AJAXのための私のスクリプトですを行う方法であることを発見しました
<script>
var cmdName = '@Session["cmdName"]';
$("#test_id").on("change", function (event) {
if ($(this).is(":checked")) {
$.ajax({
url: '@Url.Action("MultiGraph")',
type: 'Post',
data: 'On',
success: function() {
alert(data)
}
});
} else {
$.ajax({
url: '@Url.Action("MultiGraph")',
type: 'Post',
data: 'Off',
success: function() {
alert(data)
}
});
}
}); </script>
私はまた、ベローは私のスイッチボタンの画像私のコントローラのコード
public ActionResult MultiGraph(string search, string start_date, string End_date, string cmdName, int? page)
{
//search contain serial number(s)
//cmdName is for input checkbox
}
ベロー
されている
でセッション変数はなくなって、null値を使用している私がに切り替えるとオフその後、このオフ文字列は、私のアクションメソッドに送信され、私はの新しいアクションメソッドを追加している私のコード
に次の変更を行っているコメントを読んだ後にその逆
更新されたコード
を万力する必要がありますPost
[HttpPost]
public ActionResult ToggleSwitch (string search, string cmdName)
{
List<SelectListItem> items = new List<SelectListItem>();
var dtt = db.ADS_Device_Data.Select(a => a.Device_Serial_Number).Distinct().ToList();
foreach (var item in dtt)
{
if (!string.IsNullOrEmpty(item))
{
items.Add(new SelectListItem { Text = item, Value = item });
}
}
ViewBag.search = items;
return View();
}
ベローは私のかみそりの変化をされている入力
$("#test_id").on("change", function (event) {
if ($(this).is(":checked")) {
$.ajax({
url: '@Url.Action("ToggleSwitch")',
type: 'Post',
data: '{"cmdName": "On"}',
success: function() {
alert(data)
}
});
} else {
$.ajax({
url: '@Url.Action("ToggleSwitch")',
type: 'Post',
data: '{"cmdName": "Off"}',
success: function() {
alert(data)
}
});
}
});
は、しかし、それでもまだ、私は要素を検査するとき、私は任意の助けをいただければ幸いです
このエラー
私はほとんど2日
からこの問題にこだわっていますを発見し、何の警告メッセージが出ない
あなたのアクションは4つ(またはオプションで5つ)のパラメータを取りますが、単一の文字列を渡すだけです。 「オン」または「オフ」のいずれかである。それでは、パラメータ名を –
にしていないのですが、実際には、コマンドの名前をOnまたはOffにしたいのですか? – faisal1208
さらにRoryのコメントに加えて、あなたはあなたのアクションメソッドを装飾してサーバーに投稿しています。正しい属性 '[HTTPPOST]'私はデフォルトで '[HTTPGET]'に設定されていると思います。 –