Html.BuildUrlFromExpression带有用于操作的引用类型参数

时间:2008-11-13 13:41:04

标签: c# asp.net-mvc model-binding

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

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

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

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

其中ViewData.Model.ActiveColor偏离前面提到的Color实例 这呈现如下:

  

/颜色/详细颜色=? -   当然,这并不是我想到的......

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

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

1 个答案:

答案 0 :(得分:1)

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

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