C# 如何通过jqueryajaxget将对象传递给MVC控制器
我是jquery新手,无法解决以下问题:我想将一个对象传递给mvc应用程序中的一个控制器。以下是我到目前为止得到的信息:C# 如何通过jqueryajaxget将对象传递给MVC控制器,c#,javascript,asp.net-mvc,jquery,C#,Javascript,Asp.net Mvc,Jquery,我是jquery新手,无法解决以下问题:我想将一个对象传递给mvc应用程序中的一个控制器。以下是我到目前为止得到的信息: function enterPressed() { $(function () { $('#textBox').keypress(function (e) { var code = e.keyCode ? e.keyCode : e.which; if (code == 13) {
function enterPressed() {
$(function () {
$('#textBox').keypress(function (e) {
var code = e.keyCode ? e.keyCode : e.which;
if (code == 13) {
doSomethingElse(textBox.value)
}
});
});
}
function doSomethingElse(p) {
$.ajax({
type: 'GET',
data: {string: p},
url: '"Control/AddControl/Index"',
success: function (data) { alert(p) },
error: function (errorData) { alert("fail") }
});
return true;
但每次按enter键,我都会以失败告终。我的控制器位于~/Controllers/Control/AddControl中。你们有人看到问题吗
我的C#代码:
您应该将值名称更改为
控件
,如预期操作所示。您还可以使用@Url.Action()
helper设置Url
param
$.ajax({
type: 'GET',
data: { control : p},
url: '@Url.Action("Index","AddControl")',
success: function (data) { alert(p) },
error: function (errorData) { alert("fail") }
});
最后,您的操作不能返回带有ajax响应的重定向操作。
如果您想在成功响应后进行重定向,可以在客户端进行重定向。您应该按照预期操作将值名称更改为
控件。您还可以使用@Url.Action()
helper设置Url
param
$.ajax({
type: 'GET',
data: { control : p},
url: '@Url.Action("Index","AddControl")',
success: function (data) { alert(p) },
error: function (errorData) { alert("fail") }
});
最后,您的操作不能返回带有ajax响应的重定向操作。
如果要在成功响应后进行重定向,可以在客户端进行重定向。有几个问题:
1-您使用了错误的url。正确的url是“/AddControl/Index”
2-控制器中的代码无法工作,因为您使用的是ajax。您应该返回Json并在客户端处理重定向
3-您应该允许通过ajax:
public ActionResult Index()
{
return Json("Ok", JsonRequestBehavior.AllowGet);
}
有几个问题:
1-您使用了错误的url。正确的url是“/AddControl/Index”
2-控制器中的代码无法工作,因为您使用的是ajax。您应该返回Json并在客户端处理重定向
3-您应该允许通过ajax:
public ActionResult Index()
{
return Json("Ok", JsonRequestBehavior.AllowGet);
}
您可能只想POST
,而不是GET
function doSomethingElse(p) {
$.post(
'@Url.Action("Index", "AddControl")',
{
control: p
},
function (data) {
alert(data);
}
);
}
您应该使用HttpPost
属性装饰控制器操作:
[HttpPost]
public ActionResult Index(string control)
{
return Json("I received this: " + control);
}
您可能只想POST
,而不是GET
function doSomethingElse(p) {
$.post(
'@Url.Action("Index", "AddControl")',
{
control: p
},
function (data) {
alert(data);
}
);
}
您应该使用HttpPost
属性装饰控制器操作:
[HttpPost]
public ActionResult Index(string control)
{
return Json("I received this: " + control);
}
您的url是/AddControl/Index“我以失败告终”——这是因为您忽略了errorData
。您想让我们猜测错误吗?您的url是/AddControl/Index“I end with the fail”-这是因为您忽略了errorData
。你想让我们猜一下错误吗?