使用asp.net标记帮助器以在输入框中显示值

时间:2017-01-18 15:35:20

标签: c# html asp.net-mvc forms razor

我正在使用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; }

2 个答案:

答案 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);

您将获得所需的输出:

enter image description here

如果为视图模型上的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