Projectと呼ばれる主なモデルには、私が定義したクラスであるAddress型の2つの変数があります。私はフィールドの定義に基づいてアドレスの動的な書式設定をしたいので私DisplayTemplateのコードは次のとおりです。MVC DisplayTemplateはC#の文字列変数を表示しません
@model ProjectClearanceApp.Models.Project.Address
@{
string addr = "";
if (!String.IsNullOrEmpty(Model.Line1))
{
addr += (Model.Line1 + "\n");
}
if (!String.IsNullOrEmpty(Model.Line2))
{
addr += (Model.Line2 + "\n");
}
if (!String.IsNullOrEmpty(Model.City))
{
addr += Model.City;
}
if (!String.IsNullOrEmpty(Model.State))
{
addr += (", " + Model.State);
}
if (Model.ZipCode != 0)
{
addr += (", " + Model.ZipCode);
}
Html.Raw(addr);
}
私はもともと私の表示テンプレートのように定義されていたので、私は文字列変数を使用して、それに追加しています理由は次のとおりです。
@model ProjectClearanceApp.Models.Project.Address
@if (!String.IsNullOrEmpty(Model.Line1))
{
@Html.DisplayFor(model => model.Line1)
<br />
}
@if (!String.IsNullOrEmpty(Model.Line2))
{
@Html.DisplayFor(model => model.Line2)
<br />
}
@if (!String.IsNullOrEmpty(Model.City))
{
@Html.DisplayFor(model => model.City)
}
@if (!String.IsNullOrEmpty(Model.State))
{
@:, @Html.DisplayFor(model => model.State)
}
@if (Model.ZipCode != 0)
{
@:, @Html.DisplayFor(model => model.ZipCode)
}
が、最後の3理由DisplayForは別々の行にあります(少なくとも私の考えは間違っている可能性があります)。アドレスはFakeCity , FakeState , 12345
として表示され、各カンマの前に空白が付きます。
しかし、私は文字列を使用すると、私のページの変数は表示されません。最後の行(Html.Raw(addr);
)にブレークポイントを設定し、アドレスが処理中にコードが取得されるときにaddr
が正しい値を持っていますが、ページ自体をレンダリングするときに何も表示されません。私はHtml.Display(addr);
とHtml.DisplayText(addr);
を試しましたが、まだ運がありません。
コードブロック全体が '@ {...} 'で囲まれていますが、 –
はい:) - 試しましたか? –
明日まで私はコードの前に再びいませんが、それが動作すれば教えてくれます! –