2014-05-12 28 views
-4

你好,我發佈了一個問題,詢問使用什麼從視圖模型發送的信息進行建模。我意識到信息需要發送給控制器,然後發送到我的模型。我得到了一些代碼,發送信息從我的觀點我的控制器:MVC如何從視圖中傳遞數據使用Ajax

這裏是阿賈克斯:

$(document).ready(function() { 
    $("#cmdSend").click(function() { 
     // Get he content fom the input box 
     var mydata = document.getElementById("cmdInput").value; 
     $.ajax({ 
      type: "POST", 
      url: "/Terminal/processCommand", 
      data: { cmd: mydata }, // pass the data to the method in the Terminal Contoller 
      success: function (data) { 
       alert(data); 
      }, 
      error: function (e) { alert(e); } 
     }) 
    }); 
}); 

的,這是在我的控制器代碼:

[HttpPost] 
    public ActionResult processCommand(string cmd) 
    { 
     return Json(cmd); 
    } 

我測試過它並在json中發送我的輸入。然而,我的問題是,我不知道如何從字符串中取出字符串並將其發送給我的模型。請任何幫助,將不勝感激。

+4

_「我希望能夠發送使用Ajax/JQuery的/ Json的命令」 _ - 這聽起來像解決方案,我會選擇。你卡在哪裏? –

+2

對術語輕微挑剔...您不會將數據從視圖傳遞到模型。通過調用控制器操作並將數據發送到這些操作(通常以模型的形式,但任何參數類型都可以),將數據從客戶端傳遞到服務器。 AJAX只是通過JavaScript調用這些動作,而不是頁面加載(這是你想要的)。然後控制器相應地處理動作,可能以某種方式與模型服務器端進行交互。 – David

+0

我不知道直接從視圖到模型的數據通信的代碼,我搜索了一種「類型和輸入」類似於終端是什麼樣的,我發現Ajax/JQuery/Json是這種方式去做,但我不知道如何使用它們的特定場景。 – ValMangul

回答

0

正如您對問題的評論所述,您使用的術語有點令人困惑,但如果正確理解您的問題,您需要在服務器上的控制器上執行一個操作,以接受「命令」並使用它。

以下後可以進行,爲了使AJAX後,成功擊中了行動:

$('#cmdSend').click(function() { 
    var cmdInput = document.getElementById('cmdInput').value; 
    $.ajax({ 
     url: 'terminal/sendInfo', 
     type: 'POST', 
     data: {cmd : cmdInput}, 
     dataType: 'json', 
     success: function (data) { 
      //What you want to do with the returned string with data.cmd 
     } 
    }); 
}); 

控制器的行動將是這樣的:

public class TerminalController : Controller 
{ 
    [HttpPost] 
    public JsonResult sendInfo(string cmd) 
     { 
      //Do what you want to do with 'cmd' here. 

      return Json(new { cmd = "Whatever you want to send" }, JsonRequestBehavior.AllowGet); 
     } 
} 

希望這有助於!

相關問題