【问题标题】:How to use generic syntax inside a Razor view file?如何在 Razor 视图文件中使用通用语法?
【发布时间】:2023-03-11 17:30:01
【问题描述】:

我试图使用以下语句:

@Html.Test<ISQL>().Nand()

但是,Razor 在 ISQL 之前的

有什么官方的解决办法吗?

【问题讨论】:

  • ...您是否因为没有将其放入代码块中而遗漏了什么?我没有看到任何小于号...

标签: asp.net-mvc asp.net-mvc-3 razor


【解决方案1】:

要使用泛型方法,您需要对表达式进行转义

@(Html.Test<ISQL>().Nand())

【讨论】:

    【解决方案2】:

    我很欣赏这个“答案”有点晚了,而且这个问题显然已经得到了令人满意的(而且很好)的回答。但是,对于此页面的任何未来访问者,如果您需要更完整的参考指南,请参阅 MS introduction to Razor syntax 以及 Phil Haack 非常有用的 Razor quick reference 博客文章。

    【讨论】:

      【解决方案3】:

      我在升级mvc时寻找这个“同样的错误”时才发现这个问题。

      我有:

      不起作用:

      @{ 
         ViewBag.Title = "Something " + @Model.Title;
         var something = (IEnumerable<SelectListItem>)ViewBag.Options;    
      }
      

      显然,语法变得更严格了,并且由于您位于 @{} 块中,因此不应在示例中的 Model.Title 之前添加 @。但是代码编辑器上的错误指向泛型,这让我抓狂。

      如果代码中没有 则可以正常工作,但只需从 Model.Title 中删除 @ 即可解决问题。

      作品:

      @{ 
         ViewBag.Title = "Something " + Model.Title;
         var something = (IEnumerable<SelectListItem>)ViewBag.Options;    
      }
      

      希望这对任何人都有帮助

      【讨论】:

      • 我也为这个疯了! “代码块缺少结束 } 字符。”
      • 谢谢。确实有帮助 - 前一个 @ 导致下一个语句出现问题,而不是您直接指向的问题。
      【解决方案4】:

      关于@字符,此示例在升级之前有效

      @{
          string @class = ViewBag.@class;
          IDictionary<string, object> htmlAttributes = new Dictionary<string, object>();
      }
      

      升级后必须分成两块

      @{  string @class = ViewBag.@class; }
      @{  IDictionary<string, object> attrs = new Dictionary<string, object>(); }
      

      【讨论】:

        【解决方案5】:

        当我在一个 @{ ... } bock 中执行多项任务时,我遇到了一个奇怪的情况。

        @{
            // ... other assignments (without error)
            List<string> stringList = new List<string>()  // ERROR MESSAGE HERE
        }
        

        无论我做什么,总是有错误,像这样:

        使用泛型“List”需要一个类型参数

        解决方案: 我将赋值行放在 second @{ ... } bock

        @{
            // ... other assignments
        }
        @{
            List<string> stringList = new List<string>()  // WORKS
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-12-09
          • 1970-01-01
          • 2015-07-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-08-16
          • 1970-01-01
          相关资源
          最近更新 更多