MVC5视图未渲染ViewBag.Message值,直接显示字符串问题求助
问题分析与解决
问题核心是视图中未使用Razor语法解析ViewBag变量,导致直接输出字符串"ViewBag.Message"而非它存储的值"New Movie"。
问题原因
在MovieForm视图里,这段代码以纯文本形式输出:
<h2>ViewBag.Message</h2>
Razor引擎仅会解析带@前缀的服务器端变量/表达式,没有@标记的内容会被当作普通HTML文本直接渲染。
修复方案
将视图中的代码修改为:
@model VideoRentalApp.ViewModel.MovieViewModel @{ ViewBag.Title = "Movie Information"; Layout = "~/Views/Shared/_Layout.cshtml"; } <h2>@ViewBag.Message</h2>
给ViewBag.Message添加@前缀,让Razor引擎解析并输出变量存储的"New Movie"值。
你的NewMovie动作方法代码没有问题,ViewModel数据能正常显示也证明控制器与视图的绑定逻辑正确,只需修正视图中ViewBag的输出语法即可。
内容的提问来源于stack exchange,提问作者Nora
相关产品推荐
相关产品推荐

