将十进制传递给控制器​​mvc4

时间:2013-06-25 14:29:57

标签: asp.net-mvc-4 razor

我的控制器操作有问题 我的视图中有一个小数存储在我的视图中。我试图将此通过和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转换为动作链接中可以为空的小数,但这没有任何效果

2 个答案:

答案 0 :(得分:1)

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

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

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

有效吗?

答案 1 :(得分: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)