ASP.NET MVC视图问题:条件判断后指定文本未在浏览器显示
解决ASP.NET MVC视图中不显示"yes"/"no"的问题
先拆解下你代码里的两个核心问题,咱们一步步解决:
问题1:未输出HtmlHelper方法的结果
在Razor视图里,调用Html.TextBox()这类方法时,必须加上@前缀才能把生成的内容输出到页面——因为这些方法返回的是MvcHtmlString,但Razor不会自动输出无前缀的方法调用结果,只会默默执行方法却不把内容写入响应流。
问题2:需求与实现不匹配
你的需求是显示**"yes"字符串**,但代码里用了Html.TextBox(),这会生成一个文本输入框,而不是直接显示文本。如果只是要展示文字,完全不需要用文本框控件。
针对你需求的正确实现
如果你只是想在列中显示"yes"或"no"纯文本,直接用Razor表达式输出即可:
<td>@(item.ProductsRequest != null ? "yes" : "no")</td>
如果你确实需要文本框(比如要绑定表单值)
如果你的真实需求是生成一个默认值为"yes"/"no"的文本输入框,那要给Html.TextBox()加上@来输出结果:
<td> @if (item.ProductsRequest != null) { @Html.TextBox("product_request", "yes") <!-- 第一个参数是控件name属性,第二个是默认显示值 --> } else { @Html.TextBox("product_request", "no") } </td>
简单总结:Razor中要输出到页面的内容,必须用@标记——要么直接输出表达式结果,要么输出HtmlHelper方法的返回值。
内容的提问来源于stack exchange,提问作者Stefan
相关产品推荐
相关产品推荐

