强类型ASP.N“.NET研究”ET数据绑定改进版之第2版

简介:   相关文章:教你30秒打造强类型ASP.NET数据绑定、强类型ASP.NET数据绑定改进版  之前的方法存在一个问题:Ivony...说:“每个类型都去写个Eval方法也很不爽的。”Kingthy说:“这样就到处有Func了,会不会太过头了?”李永京说:“在项目中任何地方都要使用的方法,应该收集在Core级别的Dll中写成扩展方法。

  相关文章:教你30秒打造强类型ASP.NET数据绑定强类型ASP.NET数据绑定改进版

  之前的方法存在一个问题:

Ivony...说:“每个类型都去写个Eval方法也很不爽的。”

Kingthy说:“这样就到处有Func了,会不会太过头了?”

李永京说:“在项目中任何地方都要使用的方法,应该收集在Core级别的Dll中写成扩展方法。”

  如果用扩展方法解决这个问题,我们将面临新的问题,请看扩展方法:

 
 
public static class Binder
{
public static TResult Eval < TEntity, TResult > ( this System.Web.UI.Page p,
Func
< TEntity, TResult > func)
{
return func((TEntity)p.GetDataItem());
}
}

  这个问题就是在调用时,需要指定返回类型,比如:

 
 
<% # this.Eval < NewsInfo, string > (n => n.Title) %>

  可以采用另外一种方法解决这个问题,代码如下:

 
 
public static class Binder < TEntity > where TEntity : class
{
public sta上海闵行企业网站制作tic TResult Eval < TResult >上海闵行企业网站设计与制作 (System.Web.UI.Page p,
Func
< TEntity, TResult > func)
{
return func((TEntity)p.GetDataItem());
}
}

  调用代码如下:

 
 
<% # Binder < NewsInfo > .Eval(this, n => n.Title) 上海徐汇企业网站设计与制作 %>

  还有更好的解决方法吗?我目前只能找到这个方法,我觉得理想的调用方法应该是:

 
 
<% # Eval < NewsInfo > (n => n.Title) %>
目录
相关文章
|
3月前
|
开发框架 前端开发 .NET
VB.NET中如何利用ASP.NET进行Web开发
在VB.NET中利用ASP.NET进行Web开发是一个常见的做法,特别是在需要构建动态、交互式Web应用程序时。ASP.NET是一个由微软开发的开源Web应用程序框架,它允许开发者使用多种编程语言(包括VB.NET)来创建Web应用程序。
71 5
|
4月前
|
开发框架 JSON .NET
ASP.NET Core 标识(Identity)框架系列(三):在 ASP.NET Core Web API 项目中使用标识(Identity)框架进行身份验证
ASP.NET Core 标识(Identity)框架系列(三):在 ASP.NET Core Web API 项目中使用标识(Identity)框架进行身份验证
|
4月前
|
开发框架 .NET 开发工具
【Azure 应用服务】App Service 的.NET Version选择为.NET6,是否可以同时支持运行ASP.NET V4.8的应用呢?
【Azure 应用服务】App Service 的.NET Version选择为.NET6,是否可以同时支持运行ASP.NET V4.8的应用呢?
|
5月前
|
开发框架 搜索推荐 前端开发
【.NET全栈】ASP.NET开发Web应用——Web部件技术
【.NET全栈】ASP.NET开发Web应用——Web部件技术
|
4月前
分享一份 .NET Core 简单的自带日志系统配置,平时做一些测试或个人代码研究,用它就可以了
分享一份 .NET Core 简单的自带日志系统配置,平时做一些测试或个人代码研究,用它就可以了
|
4月前
|
开发框架 .NET 数据库连接
ASP.NET Core 标识(Identity)框架系列(一):如何使用 ASP.NET Core 标识(Identity)框架创建用户和角色?
ASP.NET Core 标识(Identity)框架系列(一):如何使用 ASP.NET Core 标识(Identity)框架创建用户和角色?
|
6月前
|
机器学习/深度学习 JSON 测试技术
CNN依旧能战:nnU-Net团队新研究揭示医学图像分割的验证误区,设定先进的验证标准与基线模型
在3D医学图像分割领域,尽管出现了多种新架构和方法,但大多未能超越2018年nnU-Net基准。研究发现,许多新方法的优越性未经严格验证,揭示了验证方法的不严谨性。作者通过系统基准测试评估了CNN、Transformer和Mamba等方法,强调了配置和硬件资源的重要性,并更新了nnU-Net基线以适应不同条件。论文呼吁加强科学验证,以确保真实性能提升。通过nnU-Net的变体和新方法的比较,显示经典CNN方法在某些情况下仍优于理论上的先进方法。研究提供了新的标准化基线模型,以促进更严谨的性能评估。
177 0
|
6月前
|
Linux C# C++
【.NET Developer】创建ASP.NET Core Blazor项目并打包为Linux镜像发布到Azure应用服务
本文介绍了如何使用VS2019和.NET框架创建一个Blazor应用,并将其部署到Azure应用服务。首先,Blazor是一个使用C#而非JavaScript构建交互式Web UI的框架,支持共享服务器和客户端应用逻辑,以及与Docker和Azure集成。任务包括创建Blazor项目,配置Dockerfile为Linux容器,本地测试,发布到Azure Container Registry (ACR),然后在Azure App Service for Container上部署。在部署过程中,需确保Docker设置正确,开启ACR的Admin访问权限,并监控镜像拉取和容器启动日志。
286 0
|
7月前
|
机器学习/深度学习 算法 数据可视化
MATLAB基于深度学习U-net神经网络模型的能谱CT的基物质分解技术研究
MATLAB基于深度学习U-net神经网络模型的能谱CT的基物质分解技术研究
|
3月前
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
51 7