1

非常に奇妙な例外が発生しています。
TimeSpan プロパティを持つモデルがあり、ビューを作成しようとしています。

public class Clock {

    [DataType(DataType.Time)]
    [DisplayFormat(DataFormatString = @"{0:hh\:mm}", ApplyFormatInEditMode = true)]
    public TimeSpan Time {get;set;}
}

@Html.EditorFor(model => model.Time)

それが私が得るものです

[InvalidOperationException: The model item passed into the dictionary is of type 'System.TimeSpan', but this dictionary requires a model item of type 'System.String'.]
System.Web.Mvc.ViewDataDictionary`1.SetModel(Object value) +321071
System.Web.Mvc.ViewDataDictionary..ctor(ViewDataDictionary dictionary) +377
System.Web.Mvc.WebViewPage`1.SetViewData(ViewDataDictionary viewData) +48

私は別のプロジェクトでこの手法を使用しましたが、機能しますが、現在のプロジェクトでは失敗し、自分のことはわかりません。多分私は何かを逃したか、何かが無効になっています。

4

2 に答える 2

1

を使用する場合@Html.EditorFor()、MVC は最初に、既定の規則 (またはカスタムで定義したもの) を使用してテンプレートを見つけられるかどうかを確認しますViewEngine

見つからない場合 (あなたの場合、定義されていなかった場合) は、組み込みのテンプレートを使用します。の場合TimeSpan、タイプのテンプレートを使用しようとしていたため、String見た例外が発生しました。

TimeSpan.cshtmlで入力したテンプレートを明示的に定義する必要があります@model TimeSpan

于 2016-03-15T15:53:04.937 に答える
0

例外の理由がわからないため、私の答えは回避策としての答えではありませんが、TFSからクリーンなチェックアウトを行うとうまくいきます。

于 2013-10-11T13:49:49.137 に答える