Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C#中使用Ajax将int从视图传输到控制器_C#_Jquery_Ajax - Fatal编程技术网

在C#中使用Ajax将int从视图传输到控制器

在C#中使用Ajax将int从视图传输到控制器,c#,jquery,ajax,C#,Jquery,Ajax,我想将一个整数从视图传输到控制器。我正在使用Ajax来实现这一点,下面是我的html代码: <input type="button" class="btn btn-default" value="Yes" id="return" onclick="returnBook(@item.BookID);"/> } 我的控制器: [HttpPost] public ActionResult ReturnBook(string id) { return Vie

我想将一个整数从视图传输到控制器。我正在使用Ajax来实现这一点,下面是我的html代码:

<input type="button" class="btn btn-default" value="Yes" id="return"
onclick="returnBook(@item.BookID);"/>
}

我的控制器:

[HttpPost]
    public ActionResult ReturnBook(string id)
    {
        return View();
    }

在我的控制器中,当我使用字符串时,会调用该方法,但id仍然设置为null。但是,如果我使用“int id”,则根本不会调用该方法,并且会得到一个500错误。知道如何将id从视图传递到控制器吗?

改为发送对象:

data: { id:bookID },

现在,您可以在控制器上使用此对象的键
id
来获取其值。

MVC将自动尝试将从网页传递的数据值与控制器中声明的参数相匹配

因此,当您发送变量
bookID
MVC时,它将尝试将该变量与控制器参数列表中名为
bookID
的变量相匹配。由于该参数不存在,因此忽略关联的值

要解决问题,您可以将控制器声明更改为-

public ActionResult ReturnBook(string bookId)
或者将数据声明更改为

data: id,
或者(正如Jai建议的那样)-


您是否正在使用其他库或框架?因为一般来说,字符串
@item.BookId
不会神奇地被某个字段的值替换。通常,您必须从表单中获取它,例如
,然后
returnBook(document.getElementById(“bookId”).value)
(或者
$(“#bookId”)
,如果您使用jQuery作为标记的话)。
data: id,
data: { id:bookID },