我是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#代码:

  public class AddControlController : Controller
{
    //
    // GET: /AddControl/


    public ActionResult Index(string control)
    {
        return RedirectToAction("ShowControl");
    }
}

最佳答案

您应该按照预期的方式将值名称更改为control。您也可以使用@Url.Action()助手来设置url参数。

$.ajax({
        type: 'GET',
        data: { control : p},
        url: '@Url.Action("Index","AddControl")',
        success: function (data) { alert(p) },
        error: function (errorData) { alert("fail") }
    });


最后,您的操作无法返回带有Ajax响应的重定向操作。
如果要在成功响应后进行重定向,则可以在客户端进行重定向。

08-27 21:56