1

私の用語が正しいことを願っています。そうでない場合は編集します。

Linq2Sqlクラスから、Colorクラスがあります。コントローラのアクションの1つは、このColorクラスのインスタンスを受け入れます。

このアクションへのリンクを作成したいので、

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

ViewData.Model.ActiveColorが、前述のColorのインスタンスから外れている場合。
これは次のようにレンダリングされます。

/ Color / Details?color=-コース外で私が考えていたものとは異なります。

私は何が間違っているのですか?カスタムModelBindersの作成を開始する必要がありますか?

編集
私は「-」がどこから来たのかを見つけました。明らかに、ActionLinkはToStringを呼び出しています。これは、何かを表示してから何かを識別するための方法が多いので、かなり奇妙です(GetHashの目的ではありませんか?)。オブジェクトにIserailizableインターフェイスを実装した後でも、ToStringメソッドを使用しています。ToString()を使用するのではなく、クラスをシリアル化する方法をどこかで定義できますか?完全に間違った方向に進んでいるような気がします。

4

1 に答える 1

1

Actionlink は確かに ToString() を呼び出しています。日付を使用して同じ問題に遭遇しました。私の URL では、日付をデフォルトの DateTime.ToString() ではなく dd-mm-yyyy にしたかったのです。

最初のオプションは、Color の ToString() メソッドをオーバーライドすることです。それが不可能な場合 (DateTime のように) 他の方法がありますが、それらは少し「ハッキー」です...

于 2008-12-31T12:01:12.027 に答える