可以使用表达式而不是字符串作为ASP.NET 5 TagHelper中的参数

时间:2015-11-09 09:10:51

标签: asp.net-core asp.net-core-mvc

我有以下代码调用默认的ASP.NET MVC html助手

@Html.LabelFor(model => model.PersonName, htmlAttributes: new { @class = "control-label col-md-2" })

我已将ASP.NET 5项目更改为

<label asp-for="PersonName" class="col-md-2 control-label"></label>

如果我输入错误PersonName,我会在名称下方显示一条红线,但我仍然可以成功构建我的项目。

对于HTML Helper,我总是通过输入model.来使用intellisense,所以我不能拼错这个名字。

使用TagHelper我没有这个选项,因为它是一个字符串字段。

有没有办法在TagHelper中使用相同的intellisense,因为我不想在运行时发现输入错误。

1 个答案:

答案 0 :(得分:0)

作为View的一部分,TagHelpers不是在编译时编译的,只是运行时编译。 IE,直到做出HttpRequest。然后,解析相关的View并由Controller注入HttpResponse。您的视图中的代码不会阻止您的项目构建。

要实现此目的,您需要创建一个构建操作,该操作将在编译时专门编译您的视图。由于项目结构的变化,似乎没有任何可用的资源可以实现这一目标。您可能希望从研究Compile Views in ASP.NET MVC

开始

如果您只需要IntelliSense,那么beta8已经拥有它。确保您已安装Beta8 Visual Studio Web Developer Tools