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

在.NET Framework 4.8的CSHTML中通过JS调用模型属性报错求助

解决思路

1. 先检查CSHTML的页面指令

你的CSHTML文件顶部必须有正确的Razor指令,.NET Framework 4.8的MVC项目里,得加上这两行:

@using System.Web.Mvc
@model 你的模型完整命名空间.你的模型类名

如果是Web Forms项目用CSHTML,要确认页面继承的基类正确,比如:

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<你的模型类>" %>

没这些指令,Razor根本认不出Html帮助类。

2. 核对项目配置文件

  • 要是MVC项目,打开Views文件夹下的web.config,检查pages节点里有没有注册MVC相关命名空间:
<system.web.webPages.razor>
  <pages pageBaseType="System.Web.Mvc.WebViewPage">
    <namespaces>
      <add namespace="System.Web.Mvc" />
      <add namespace="System.Web.Mvc.Ajax" />
      <add namespace="System.Web.Mvc.Html" />
    </namespaces>
  </pages>
</system.web.webPages.razor>

缺了就补上,这是Razor能调用Html对象的关键配置。

  • 要是Web Forms项目,得确保已经装了Microsoft.AspNet.WebPages这个NuGet包,同时Web.config里配置了Razor的处理程序。

3. 换种Json序列化方式(备选)

要是Html还是用不了,直接用.NET自带的序列化类代替也行:

var headerListData = @(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(Model.Header));

怕有特殊字符的话,可以配合HttpUtility.JavaScriptStringEncode做转义处理。

4. 确认文件位置

MVC项目里,视图文件必须放在Views目录(或者Area对应的Views子目录)里,要是随便放其他文件夹,Razor加载不了MVC的视图上下文,自然找不到Html对象。

5. 清理重建项目

有时候编译缓存会搞出这种上下文错误,试试:

  • 右键项目选“清理”
  • 手动删掉bin和obj文件夹
  • 重新编译项目

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 23:01:31