ASP.NET Coreの初心者で、ビューにフィールドを表示することについて質問します。私は
class Person {
public string Name {get; set;}
public string Nickname {get; set;}
}
通常、EditPerson
ビューでは、
<input asp-for="Name" class="form-control" />
<input asp-for="Nickname" class="form-control" />
フィールドを表示します。
しかし、私のEditPerson
ビューでは、Name
を読み取り専用として表示し、Nickname
を編集可能フィールドとして表示する必要があります。
Name
はtextbox(readonlyであっても)ではなく、labelまたはdiv ...
そのようなフィールドを表示する標準的なアプローチはありますか?
フィールドをモデルまたはDBに更新したくないので、フィールドを読み取るだけで済みます。
Razor構文でHTMLとして出力します
https://docs.Microsoft.com/en-us/aspnet/core/mvc/views/razor
@Model.Name
<input asp-for="Nickname" class="form-control" />
注-これには適切なスタイル設定、または<span>
タグなどでのラップが必要です...
これを試して。
<input asp-for="Name" class="form-control" readonly="@(true)">
<input asp-for="Name" class="form-control" readonly="@(false)">
このレンダリング:
<input class="form-control" type="text" id="Name" name="Name" value="Tom" readonly="readonly">
<input class="form-control" type="text" id="Name" name="Name" value="Tom">
私はそれをここから実現しました: https://github.com/aspnet/Mvc/issues/7333#issuecomment-363504164
これは私のために働いた
<input asp-for="Name" class="form-control" ReadOnly="true"/>
<input asp-for="Nickname" class="form-control" />
[ReadOnly(true)]
public string Name {get; set;}
ReadOnly属性を追加します。クラスの先頭にusing System.Component;
を必ず含めてください。
これは私のために働きました:
<input asp-for="Name" class="form-control" readonly="readonly" />