MVC3/RazorからMVC5/Razorにアップグレードしました。MVC3からMVC5で表示テンプレートの動作が変更されましたか?
私の表示テンプレートがモデル値でもう読み込まれていないことが判明しました。
テンプレートは "MyTemplateに" と呼ばれている:私は、デバッガを経由して、それに従うとき、nullを返している
@Html.DisplayFor(modelItem => item.mydecimalvalue, "MyTemplate")
モデル:
@model System.Object
@{
if (Model !=null)
{
string.Format("{0:0.00}", Model);
}
else
{
@:-
}
}
によって呼び出されています。これはMVC3で正常に動作していました
これについての助けがあれば幸いです。
EDIT 1
string.Format("{0:0.00}", Model);
は次のようになります。
@(string.Format("{0:0.00}", Model));
それが機能するために使用されるように、MVC4または5と、この周りの変更が行われている必要があります。
あなたが何を求めているのかは不明です。あなたのモデルタイプは 'System.Object'です。どうして? 10進数の 'item.mydecimalvalue'はどのような型ですか?テンプレートでnullをチェックしているのはなぜですか(if(Model!= null))? 「nullを返す」とは何ですか? 'Model.ToString()'? 'string.Format'行とは何ですか?なぜコメントされますか?詳細を記入してください。ありがとう。 – NightOwl888
お返事ありがとうございます。入力の型は10進数ですが、値がNULLの場合もありますが、その場合は " - "を表示します。値があった場合は、小数点以下2桁まで小数点以下を書式化したいと思います。コードを明確にするように修正しました。 – SamJolly
"item.mydecimalvalue"は呼び出し側のビューに値を持ちます。私はこれをデバッガでチェックし、それを書いています。ただし、値はテンプレート内でnullに変換されます。 – SamJolly