我把一個自舉開關撥到我的應用程序 現在我想是在開啓和關閉值發送到我的操作方法在asp.net MVC從JavaScript將數據傳遞到操作方法
貝婁是我的剃刀語法
@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>}
對於來自JS
將數據傳遞到控制器我已經搜查了許多文章,發現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
}
貝婁是我的開關按鈕圖像
當我切換到關閉那麼這關字符串應該被髮送到我的操作方法,並反之亦然
更新的代碼
閱讀評論我也做了以下更改我的代碼
我已經添加了一個新的操作方法後,鍵入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個)參數,但您只傳遞一個字符串; 「開」或「關」。即使你沒有提供參數名稱 –
實際上我只是想通過命令名稱打開或關閉我的行動方法 – faisal1208
除了Rory的評論,你還沒有指定你張貼到服務器通過裝飾你的動作方法正確的屬性'[HTTPPOST]'我認爲默認情況下它的設置爲'[HTTPGET]' –