1

我的控制器操作之一有问题。
我的视图中存储了一个小数点。并且我试图将这个通过和 actionlink 传递给我的控制器方法。

ViewBag.Interest =1.25 


@Html.ActionLink("Export", "ExportInterest", "Export", new {id = ViewBag.Interest}, null). 

我的控制器方法看起来像这样:

public ActionResult ExportInterest(decimal? id)

{

return View();

}  

我可以看到 1.25 是通过查询字符串传递的,但是在路由时却找不到 404 文件。注意:如果我将它更改为没有小数点的整数,它工作正常。这是编码错误吗?它不识别小数点,也许我需要转义它?我应该使用 htmlhelper 吗?最初我认为这可能是本地化问题,但我在 web.config 中设置了我的全球化文化。我显然在这里做一些愚蠢的事情......任何帮助将不胜感激......

更新:我也尝试在操作链接中将我的 viewbag 转换为可以为空的小数,但这没有任何效果

4

2 回答 2

1

我的猜测与视图包中的数据类型有关。

我之前已经将小数传递给控制器​​,所以我知道它可以完成。但是,如果您将链接更改为:

@Html.ActionLink("Export", "ExportInterest", "Export", new {id =1.25}, null).

它有效吗?

于 2013-06-25T14:34:59.367 回答
0

试试看:

decimal? d = (decimal?)ViewBag.Interest;

@Html.ActionLink("Export", "ExportInterest", "Export", new {id = d}, null)

或者

@Html.ActionLink("Export", "ExportInterest", "Export", new {id = (decimal?)ViewBag.Interest}, null)
于 2013-06-25T14:38:40.497 回答