MVC中Html默认隐藏文本
我的cshtml中有以下HTML代码:MVC中Html默认隐藏文本,html,asp.net-mvc,textbox,Html,Asp.net Mvc,Textbox,我的cshtml中有以下HTML代码: <form method="get" action="@Url.Action("Index")"> @(Html.TextBox("q", Model.Search.FreeSearch)) <input type="submit" value="Search"/> </form> 从搜索中获取值的控制器: public ISolrQuery BuildQuery(SearchParameters param
<form method="get" action="@Url.Action("Index")">
@(Html.TextBox("q", Model.Search.FreeSearch))
<input type="submit" value="Search"/>
</form>
从搜索中获取值的控制器:
public ISolrQuery BuildQuery(SearchParameters parameters)
{
if (!string.IsNullOrEmpty(parameters.FreeSearch))
return new SolrQuery(parameters.FreeSearch);
return SolrQuery.All;
}
public SortOrder[] GetSelectedSort(SearchParameters parameters)
{
return new[] { SortOrder.Parse(parameters.Sort) }.Where(o => o != null).ToArray();
}
非常感谢您的帮助。您可以这样做:
if(!String.IsNullOrWhiteSpace(Model.Search.FreeSearch))
@(Html.TextBox("q", Model.Search.FreeSearch))
else
@(Html.TextBox("q", Model.Search.FreeSearch, new { Value="Default Text Here"}))
事实上,您已经提供了
FreeSearch
:
@Html.TextBox("q", !string.IsNullOrEmpty(Model.Search.FreeSearch)
? Model.Search.FreeSearch
: "Default"
, new { placeholder = "Placeholder text" }
)
最后一行添加html属性占位符
,以在背景中显示文本。此文本不会提交到服务器
更改路线:
routes.MapRoute(
name: "Search",
url: "Home/Search/{q}",
defaults: new { controller = "Home", action = "Search", q = "Default value" }
);
Op想设置文本框的默认文本“这里的默认文本”必须隐藏,因为用户可以删除它,它必须始终存在。然后可以使用隐藏字段..但这没有意义
routes.MapRoute(
name: "Search",
url: "Home/Search/{q}",
defaults: new { controller = "Home", action = "Search", q = "Default value" }
);