如何在Razor Pages的.cshtml文件中设置输入框值为‍?
解决Razor Pages中输入框value显示HTML实体而非实际字符的问题
问题出在Razor的自动HTML编码机制——它会把你写的‍转义成‍,所以页面最终显示的是字面量‍,而非对应的零宽空格字符。
给你三种可行的解决办法:
直接使用Unicode字符
零宽空格的Unicode编码是U+200C,你可以直接把这个肉眼不可见的字符写入value属性:<input asp-for="Title" value="" />用
Html.Raw()输出未编码实体
如果不需要asp-for的模型绑定,直接用Html.Raw()绕过编码:<input name="Title" value="@Html.Raw("‍")" />后端模型赋值(推荐)
保留asp-for的绑定逻辑,在PageModel中直接给Title属性设置零宽空格的Unicode值:public class YourPageModel : PageModel { [BindProperty] public string Title { get; set; } public void OnGet() { Title = "\u200C"; // 零宽空格的Unicode转义写法 } }前端只需正常写:
<input asp-for="Title" />
注意:零宽空格是不可见字符,设置后输入框视觉上是空的,你可以通过复制输入框内容到文本编辑器来验证字符是否存在。
内容的提问来源于stack exchange,提问作者Daniel Veinberg
相关产品推荐
相关产品推荐

