我正在使用asp.net核心razor引擎实体框架。我试图让我的输入框有一个默认值,表示"在这里输入值"。
在我的.cshtml文件中,我有一个来自
@model login.Models.Auction
<form asp-controller="NewAuction" asp-action="New" method="post" role="form">
<input asp-for="Bid" value = "Enter value here"/>
<button type="submit">Bid</button>
</form>
我的Model.Auction的代码。
[Range(1,int.MaxValue)]
[Display(Name = "Enter value here")]
public int Bid { get; set; }
答案 0 :(得分:3)
在视图模型上使您的属性可以为空之后:
[Range(1,int.MaxValue)]
[Display(Name = "Enter value here")]
public int? Bid { get; set; }
您可以使用placeholder
属性:
<input asp-for="Bid" placeholder="Enter value here" />
现在假设相应的控制器操作未在视图模型中传递此属性的值:
var viewModel = new Auction
{
Bid = null,
};
return View(viewModel);
您将获得所需的输出:
如果为视图模型上的Bid
属性赋值,则该值将显示在相应的输入标记中。
答案 1 :(得分:3)
我使用Razor扩展名和html5“@placeholder”属性,如:
@Html.EditorFor(model => model.Value, new {htmlAttributes = new { @placeholder = "Enter value here"}})
我认为你正在寻找html属性'placeholder'。
为了清楚起见,这并不是什么特别的ASP.NET CORE,它只是一些html-stuff