0

Razor と String.Format に問題があります。次のようなパラメーターがあります。

@{
string aktenHeader = Html.Raw(Model.Node.Aktenzeichen + string.Format("{0}" + Model.Node.Aktenkurzbezeichung, (Model.Node.Aktenzeichen != null && Model.Node.Aktenkurzbezeichung != null ? " ./. " : ""))).ToString();    
}

例外が発生しました:入力文字列が正しい形式ではありませんでした。

友達を助けてください。ありがとう

編集

Model.Node.Aktenzeichen = "アクテ"

Model.Node.Aktenkurzbezeichung = "テスト ${}"

そして、私は aktenHeader = "Schnulli ./. Test ${}" を期待していました

4

2 に答える 2

2

Model.Node.Aktenkurzbezeichungクエリ文字列に実際に含めるべきではないようです。最後に値を連結しようとしているだけなので、次を使用できると思います。

@{
    string x = Model.Node.Aktenzeichen != null &&
                   Model.Node.Aktenkurzbezeichung != null ? " ./. " : "";
    string aktenHeader = Html.Raw(Model.Node.Aktenzeichen + x +
                                  Model.Node.Aktenkurzbezeichung).ToString();    
}

わかりやすくするために、長い式を別のローカル変数として抽出しました。

を使用したい場合はstring.Format、引き続き使用できます。

string aktenHeader = Html.Raw(string.Format("{0}{1}{2}",
                              Model.Node.Aktenzeichen, x,
                              Model.Node.Aktenkurzbezeichung)).ToString();

基本的に、データのどの部分を文字列形式として使用することを意図しており、どの部分をとして使用することを意図しているかを明確にすることが重要です。Aktenkurzbezeichung値として扱いたいと思われるときに、フォーマットの一部として使用していました。

于 2013-06-26T13:46:22.327 に答える