【问题标题】:Alternative for razor syntax in .aspx pages in ASP.NETASP.NET 中 .aspx 页面中剃刀语法的替代方法
【发布时间】:2019-09-04 04:14:13
【问题描述】:

我正在尝试使用 .aspx 页面在 ASP.NET 上创建一个项目。与 .aspx 页面不同,该项目还包含支持 razor 语法的 .cshtml 文件。现在,我对 Web 编程相当陌生,并且不太熟悉在 .cshtml 中使用 razor 语法的替代方法,或者是否可以在 ASP.NET 中使用 .cshtml 视图,从而完全避免使用 .aspx 页面。

例如,我如何实现此代码(在 .cshtml 中有效)

@AntiForgery.GetHtml()

在 .aspx 页面中

以下是我想在 .aspx 中实现但不能实现的更多代码示例:

<div class="form-group">
    <label for="exampleInputEmail1" @if(!ModelState.IsValidField("email")) 
        { <text> class="error-label" </text> }>
        Email address
    </label>                    
    <input type="text" class="form-control" id="email" name="email" 
    value="@email" @Validation.For("email")/>
    @Html.ValidationMessage("email")
</div>

【问题讨论】:

  • 为什么不直接使用 Web 表单,而使用 ASP.NET MVC?

标签: asp.net razor


【解决方案1】:

您的项目似乎是一个 ASP.NET MVC 项目,混合了 ASPX 视图引擎和 Razor 视图引擎。 Razor 语法和 .cshtml 只是 Razor 视图引擎的一部分,而 .aspx 页面属于 ASPX 视图引擎,它们都来自 Web MVC 框架。当然,您可以完全使用 .cshtml 页面(Razor View),这只是 View Engine 的问题。但我不确定你是否熟悉 MVC 模式。

【讨论】:

  • 感谢您的解释。是的,我熟悉 MVC 的数据库优先方法,但我对经典的 ASP.NET 相当陌生。我怎样才能实现使用 .aspx.cs 扩展名和 Web 表单创建类并使用 .cshtml 而不是 .aspx 页面的目标?
  • 恐怕你不能。 ASP.NET Web Forms 与 ASP.NET MVC 太不同了,而 ASP.NET 团队还没有工厂来支持这一点。已经回答了这个问题:stackoverflow.com/questions/5264852/…
猜你喜欢
  • 1970-01-01
  • 2011-04-12
  • 1970-01-01
  • 1970-01-01
  • 2021-11-29
  • 1970-01-01
  • 2019-01-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多