如何在cshtml中实现aspx中asp:Label的ID、runat属性同等功能,含按钮超链接场景
Label控件等效写法
Web Forms的<asp:Label>最终渲染到前端就是<span>标签,你要实现的隐藏、服务端可配置文本的需求,在cshtml里可以直接写:
<!-- 固定文本场景 --> <span id="TitleLabel" style="display:none">title</span> <!-- 动态绑定服务端文本场景,对应原来服务端修改Text属性的效果 --> <span id="TitleLabel" style="display:none">@Model.Title</span>
Razor里不需要显式写runat="server",只要用@绑定服务端变量/属性,就能在服务端控制输出的文本内容,和原来的功能完全一致。
按钮控件等效写法
对应Web Forms的<asp:Button>,cshtml里可以这么写:
<!-- 普通提交按钮,固定文本 --> <button type="submit" id="SubmitBtn">提交</button> <!-- 动态绑定文本,配合Tag Helper绑定服务端处理方法(Razor Pages场景) --> <button type="submit" asp-page-handler="SubmitData" id="SubmitBtn">@Model.SubmitBtnText</button>
如果是MVC场景,把asp-page-handler换成asp-action指定对应的Action名即可。
超链接控件等效写法
对应Web Forms的<asp:HyperLink>,cshtml里直接用原生<a>标签配合Razor语法就行:
<!-- 固定链接和文本 --> <a href="/user/profile" id="ProfileLink">个人中心</a> <!-- 动态绑定链接和文本 --> <a href="@Model.ProfileUrl" id="ProfileLink">@Model.ProfileLinkText</a> <!-- 用Tag Helper简化路由生成(MVC场景) --> <a asp-action="Profile" asp-controller="User" id="ProfileLink">个人中心</a> <!-- 用Tag Helper简化路由生成(Razor Pages场景) --> <a asp-page="User/Profile" id="ProfileLink">个人中心</a>
内容的提问来源于stack exchange,提问作者henry
相关产品推荐
相关产品推荐

