在ASP.NET Core中显示只读字段

Ser*_*rge 6 c# asp.net-core asp.net-core-tag-helpers

我是ASP.NET Core的新手,想问一下在wa视图中显示一个字段.我有一个

class Person { 
    public string Name {get; set;} 
    public string Nickname {get; set;} 
}
Run Code Online (Sandbox Code Playgroud)

通常,在EditPersonView中,我这样做

<input asp-for="Name" class="form-control" />
<input asp-for="Nickname" class="form-control" />
Run Code Online (Sandbox Code Playgroud)

显示字段.

但在我的EditPerson视图中,我需要显示Name为只读和Nickname可编辑字段.

Name不应该在一个文本框(甚至只读),而是在标签DIV ...

是否有标准方法来显示这些字段?

我不希望将该字段更新回模型或DB,我只需要阅读该字段.

tsu*_*980 12

试试这个.

<input asp-for="Name" class="form-control" readonly="@(true)">
<input asp-for="Name" class="form-control" readonly="@(false)">
Run Code Online (Sandbox Code Playgroud)

这个渲染:

<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">
Run Code Online (Sandbox Code Playgroud)

我从这里意识到:https://github.com/aspnet/Mvc/issues/7333#issuecomment-363504164


Ale*_*lex 6

使用Razor语法将其输出为HTML

https://docs.microsoft.com/zh-cn/aspnet/core/mvc/views/razor

@Model.Name
<input asp-for="Nickname" class="form-control" />
Run Code Online (Sandbox Code Playgroud)

注意-这将需要适当地设置样式,或包装在<span>标签中等。


Mus*_*sab 5

这对我有用

<input asp-for="Name" class="form-control" ReadOnly="true"/>
<input asp-for="Nickname" class="form-control" />
Run Code Online (Sandbox Code Playgroud)

  • 这将在文本框中显示该值。OP指出“名称不应该在文本框中” (2认同)