我目前正在尝试将值传递给控制器操作,而我尝试传递的整数太长。为了解决这个问题,我尝试使用new { trackingNumber = 9374869903500896631228d }
并将操作的参数类型更改为double,然后将值传递为9.3748699035009E+21
而不是937486990350089663128
。如何更改以下Html.ActionLink和控制器操作,以便我可以将值937486990350089663128
传递给我的操作?
行动链接:
<div>@Html.ActionLink("Track Package", "TrackPackage", "Orders", new { trackingNumber = 9374869903500896631228 }, null)</div>
控制器操作:
public void TrackPackage(int trackingNumber) {
// .....do stuff with trackingNumber
}
答案 0 :(得分:1)
c#中没有一个简单的类型可以保存一个整数,大(long
resp。Int64
只有大约18位数。并且double
虽然它具有如此大的数字范围,但缺乏精确度。因此,您只能将值作为string
传递。如果您需要对服务器端的数字进行算术运算,则可以使用BigInteger
结构。您可以使用Parse
方法将字符串转换为BigInteger。
public void TrackPage(string trackingnumber) {
BigInteger tracker = BigInteger.Parse(trackingnumber);
// do something with your number
}