You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用model.id动态生成HTML属性值并添加静态文本?

解决动态按钮名称的Razor语法问题

你遇到的问题主要是Razor表达式的写法不对,没法正确拼接动态值和静态文本。咱们一步步来修正:

首先,原来的name="@model.id"有两个常见问题:

  • 强类型模型里,模型对象的引用是大写的Model(不是小写model),除非你特意定义了小写的变量;
  • 没有把动态的Id值和静态文本“Button”拼接起来,所以只会渲染Id的值,达不到你要的效果。

正确的写法(两种常用方式)

方式1:使用C#字符串插值(推荐,C# 6及以上支持)

这种写法更直观,把动态值嵌入到字符串里:

<button name="@($"{Model.Id} Button")">@($"{Model.Id} Button")</button>

这里的$"{Model.Id} Button"会把Model.Id的值和“ Button”拼接成完整的字符串,比如Id是123的话,最终渲染出来的就是name="123 Button"。

方式2:使用字符串拼接

如果你的项目用的是较老的C#版本,也可以用+来拼接字符串:

<button name="@(Model.Id + " Button")">@(Model.Id + " Button")</button>

注意必须用@()把整个表达式包裹起来,告诉Razor这是一个完整的C#表达式,不然它会把+当成普通文本渲染。

特殊情况:如果用的是弱类型(比如ViewBag/ViewData)

如果你的Id是存在ViewBag里的,写法类似:

<button name="@($"{ViewBag.Id} Button")">@($"{ViewBag.Id} Button")</button>

这样就能正确生成带有动态Id值和静态“Button”文本的按钮名称啦~

内容的提问来源于stack exchange,提问作者Some One

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:39:51