html actionlink中的C#.net积分常量太大

时间:2016-04-14 15:56:27

标签: c# html actionlink

我目前正在尝试将值传递给控制器​​操作,而我尝试传递的整数太长。为了解决这个问题,我尝试使用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 }

1 个答案:

答案 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 
}