C# 如何通过jqueryajaxget将对象传递给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) {

我是jquery新手,无法解决以下问题:我想将一个对象传递给mvc应用程序中的一个控制器。以下是我到目前为止得到的信息:

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
。你想让我们猜一下错误吗?