1

我希望我的术语是正确的。如果没有,请编辑。

从我的 Linq2Sql 类中,我有一个 Color 类。我的控制器的一个动作接受这个 Color 类的一个实例。

我想创建一个指向此操作的链接,所以我使用

<%=Html.ActionLink<ColorController>(c=>c.Details(ViewData.Model.ActiveColor), "test")%>

ViewData.Model.ActiveColor 当然是前面提到的 Color 实例。
这呈现如下:

/Color/Details?color=- 不完全是我的想法。

我究竟做错了什么?我应该开始创建自定义 ModelBinders 吗?

编辑
我找到了“-”的来源。显然 ActionLink 正在调用 ToString。这很奇怪,因为我看到 tostring 更多的方式来显示一些东西然后识别一些东西(这不是 GetHash 的用途吗?)。即使在我的对象上实现了 Iserailizable 接口后,它仍然使用 ToString 方法。我可以在某处定义如何序列化我的类而不是使用 ToString() 吗?我觉得我完全走错了路。

4

1 回答 1

1

Actionlink 确实在调用 ToString()。我在使用日期时遇到了同样的问题。在我的网址中,我希望日期为 dd-mm-yyyy 而不是默认的 DateTime.ToString()。

第一个选项是覆盖您的 Color 的 ToString() 方法。如果这是不可能的(与 DateTime 一样)还有其他方法,但它们有点“hacky”......

于 2008-12-31T12:01:12.027 回答