Javascript MVC如何使用Ajax将数据从视图传递到模型
您好,我收到一个问题,询问如何使用从视图向模型发送信息。我意识到信息需要发送到控制器,然后再发送到我的模型。我得到了一些代码,可以将视图中的信息发送到控制器:Javascript MVC如何使用Ajax将数据从视图传递到模型,javascript,jquery,ajax,json,asp.net-mvc-4,Javascript,Jquery,Ajax,Json,Asp.net Mvc 4,您好,我收到一个问题,询问如何使用从视图向模型发送信息。我意识到信息需要发送到控制器,然后再发送到我的模型。我得到了一些代码,可以将视图中的信息发送到控制器: [HttpPost] public ActionResult processCommand(string cmd) { return Json(cmd); } 以下是Ajax: $(document).ready(function () { $("#cmdSend").click(func
[HttpPost]
public ActionResult processCommand(string cmd)
{
return Json(cmd);
}
以下是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发送了我的输入。然而,我的问题是,我不知道如何从中取出字符串并将其发送到我的模型。如有任何帮助,我们将不胜感激。如您的问题评论中所述,您使用的术语有点混乱,但如果正确理解您的问题,您希望服务器上的控制器上的操作接受“命令”并使用它 为了让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);
}
}
希望这有帮助 “我希望能够使用Ajax/JQuery/Json发送命令”——这听起来像是我选择的解决方案。你被困在哪里了?对术语有点挑剔。。。您不会将数据“从视图传递到模型”。您可以通过调用控制器操作并将数据发送到这些操作(通常以模型的形式,但任何参数类型都可以)来将数据从客户端传递到服务器。AJAX只是通过JavaScript调用这些操作,而不是页面加载(这是您想要的)。然后控制器相应地处理操作,可能以某种方式与模型服务器端交互。我不知道直接从视图向模型传输数据的特定代码,我搜索了一种“键入并输入”与终端类似,我发现Ajax/JQuery/Json是实现这一点的方法,但我不知道如何在特定场景中使用它们。我建议从开始,甚至可以跳到Ajax部分。如前所述,我认为你的问题过于宽泛,不可能如此。