2017-12-27 264 views
0

我有我的佈局視圖上我的導航欄的開關按鈕,當我點擊按鈕,它改變了值,並將其發送到控制器:從佈局將數據發送到控制器Asp.Net MVC

<input type="button" id="switchbutton" value="Weekend" style="color:blue" onclick="toggle(this)" > 

<script type="text/javascript"> 
    function toggle(button) { 
     switch (button.value) { 
      case "Weekend": 
       button.value = "Week"; 
       break; 
      case "Week": 
       button.value = "Weekend"; 
       break; 
     } 
     $.ajax({ 
      type: "POST", 
      url: "/Home/AjaxMethod", 
      data: '{param: "' + $(this).val() + '" }', 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function(response) { 
       alert("Return Value: " + response); 
      }, 
      failure: function(response) { 
       alert(response.responseText); 
      }, 
      error: function(response) { 
       alert(response.responseText); 
      } 
     }); 
    } 
</script> 

在控制器我收到該值並將其發送給執行函數的If語句,具體取決於接收到的值。

private string SwitchVal; 
[HttpPost] 
public string AjaxMethod(string param) 
{ 
    var d = string.Empty; 
    switch (param) 
    { 
     case "Weekend": 
      d = "Week"; 
      break; 
     case "Week": 
      d = "Weekend"; 
      break; 
    } 
    SwitchVal = d; 
    return d; 
} 

public JsonResult ModelsUpdate(string SwitchVal) 
{ 
    if (SwitchVal == "Weekend") 
    { 
     resultminDate = CalculateminDate(minDate, todayDay); 
    } 
    else 
    { 
     resultminDate = CalculateminDateWeek(minDate, todayDay); 
    } 

的問題是,我按一下按鈕,我看不出有什麼變化,它似乎只值到達控制器中的第一次。有人可以幫助我嗎?

+0

私人'SwitchVal'變量將不會舉行2個HTTP調用之間的數據。 – Shyju

+0

現在發生了什麼?它是否正在進行ajax調用?你是否收到腳本錯誤? – Shyju

+0

「我沒有看到任何變化」預期的變化是什麼? – lucky

回答

1

它不這樣工作。您無法在多個不同的請求中保存服務器端的值。也許你可以使用Session來執行它,但爲什麼不發佈數據ModelsUpdate而不是AjaxMethod。在你的情況下,我無法理解AjaxMethod的目的。

public JsonResult ModelsUpdate(string SwitchVal) 
    { 
     if (SwitchVal == "Weekend") 
     { 
      resultminDate = CalculateminDate(minDate, todayDay); 
     } 
     else 
     { 
      resultminDate = CalculateminDateWeek(minDate, todayDay); 
     } 
     return Json(resultminDate); 
    } 

Ajax調用看起來像

$.ajax({ 
    type: "POST", 
    url: "/Home/ModelsUpdate", 
    data: '{SwitchVal: "' + $(this).val() + '" }', 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(response) { 
     alert("Return Value: " + response); 
    }, 
    failure: function(response) { 
     alert(response.responseText); 
    }, 
    error: function(response) { 
     alert(response.responseText); 
    } 
}); 
+0

嗨, 我做到了,我沒有錯誤,但我的問題是仍然是一樣的,當我點擊按鈕時,視圖數據不會改變 –

+0

當請求成功完成時,您正在執行警報消息。你會期待什麼? – lucky

+0

不,我有一個If語句返回值,該語句根據返回的值運行函數。請檢查代碼。 –

相關問題