ASP.NET MVC

NetCore3.0实现自定义IOC容器注入

ε祈祈猫儿з 提交于 2020-02-25 18:33:55
在之前的 ASP.NET MVC实现依赖注入 一文中,通过替换默认的ControllerFactory来达到对Controller生命周期的拦截,实现自定义的对象注入,在NetCore3.0中需要重新实现,步骤如下: 1.获取所有相关业务程序集aaa public static List<Assembly> GetFrameworkAssemblys () { var list = new List<Assembly>(); var deps = DependencyContext.Default; var libs = deps.CompileLibraries; foreach ( var lib in libs) { if (!lib.Serviceable && lib.Type != "package" && lib.Name.StartsWith( "FastCloud" )) { var assembly = AssemblyLoadContext.Default.LoadFromAssemblyName( new AssemblyName(lib.Name)); list.Add(assembly); } } return list; } 2.对所有Component组件注册 public class InjectContext { private static

如何通过JavaScript发送跨域POST请求?

流过昼夜 提交于 2020-01-09 21:02:35
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 如何通过JavaScript发送跨域POST请求? 注意-它不应该刷新页面,之后我需要抓取并解析响应。 #1楼 高级。...您需要在服务器上进行cname设置,以便other-serve.your-server.com指向other-server.com。 您的页面动态创建了一个不可见的iframe,它充当您到other-server.com的传输。 然后,您必须通过JS从您的页面与other-server.com进行通信,并具有将数据返回到您的页面的回调。 可能,但需要your-server.com和other-server.com的协调 #2楼 我知道这是一个老问题,但是我想分享我的方法。 我使用cURL作为代理,非常简单且一致。 创建一个名为Submit.php的php页面,并添加以下代码: <? function post($url, $data) { $header = array("User-Agent: " . $_SERVER["HTTP_USER_AGENT"], "Content-Type: application/x-www-form-urlencoded"); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl

一款高效开发平台简介,基于微软.net平台

早过忘川 提交于 2020-01-06 23:18:56
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 平台介绍 Learun快速开发平台是一个.net中后台应用解决方案(.net分布式快速开发框架);前端基于Bootstrap,促使前端高效开发;后端基于ASP.NET MVC5和Dapper框架,提供一套快速开发框架。平台实现通用的基础功能、权限验证、安全验证,为中小型企业提供稳定、高效、安全、便捷的一体式框架。 平台功能 地址 https://www.learun.cn/ 基础功能 l 用户登录/修改密码/退出 l 菜单管理/用户管理(数据授权、权限授权、新增用户) l 用户安全控制(重置密码、用户操作异常锁定、修改密码等) l 权限管理中心(自定义表单权限、普通权限) l 精细化权限控制,控制到按钮的显示 l 数据字典管理/单据编码管理 l 登录日志/操作日志/访问日志/异常日志 l 文件上传/图片上传 l 通用导入导出excel功能 l 定时任务/任务管理/任务监控 高级功能 l 数据权限管理和验证 l 平台模板管理和发布 l 文章管理和发布 l 智能查询 平台特点 来源: oschina 链接: https://my.oschina.net/u/4148883/blog/3153387

文件上载ASP.NET MVC 3.0

一曲冷凌霜 提交于 2020-01-06 13:22:17
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> (前言:这个问题是关于 2011年发布的 ASP.NET MVC 3.0,它不是关于2019年发布的 ASP.NET Core 3.0 ) 我想在 asp.net-mvc 上传文件。 如何使用html input file 控件上传 input file ? #1楼 在视图中: <form action="Categories/Upload" enctype="multipart/form-data" method="post"> <input type="file" name="Image"> <input type="submit" value="Save"> </form> 而控制器中的以下代码: public ActionResult Upload() { foreach (string file in Request.Files) { var hpf = this.Request.Files[file]; if (hpf.ContentLength == 0) { continue; } string savedFileName = Path.Combine( AppDomain.CurrentDomain.BaseDirectory, "PutYourUploadDirectoryHere");

AddTransient,AddScoped和AddSingleton服务的差异?

自作多情 提交于 2019-12-28 21:10:33
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 我想在 Asp.Net Core 实现 dependency injection 。 因此,在将此代码添加到 ConfigureServices 方法之后,两种方式都有效。 services.AddTransient 和 service.AddScoped 方法有什么区别是 Asp.Net Core ? public void ConfigureServices(IServiceCollection services) { // Add framework services. // Add application services. services.AddTransient<IEmailSender, AuthMessageSender>(); services.AddScoped<IEmailSender, AuthMessageSender>(); } #1楼 在dotnet的依赖注入中,有三个主要的生命周期: Singleton 在整个应用程序中创建单个实例。 它首次创建实例,并在所有调用中重用相同的对象。 每范围内请求一旦创建 范围的 终身服务。 它相当于当前范围内的Singleton。 例如。 在MVC中,它为每个http请求创建1个实例,但在同一Web请求中的其他调用中使用相同的实例。

如何从ASP.NET MVC中的枚举创建下拉列表?

给你一囗甜甜゛ 提交于 2019-12-27 18:04:35
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 我正在尝试使用 Html.DropDownList 扩展方法,但无法弄清楚如何在枚举中使用它。 假设我有一个这样的枚举: public enum ItemTypes { Movie = 1, Game = 2, Book = 3 } 如何使用 Html.DropDownList 扩展方法使用这些值创建下拉列表? 还是我最好的选择就是简单地创建一个for循环并手动创建HTML元素? #1楼 最后,我创建了扩展方法来执行本质上是这里接受答案的方法。 要点的后半部分专门针对Enum。 https://gist.github.com/3813767 #2楼 我对此很迟,但是如果您乐于添加 Unconstrained Melody NuGet软件包(Jon Skeet的一个不错的小型库),那么我只用一行代码就找到了一种非常酷的方法。 此解决方案更好,因为: 它确保(带有通用类型约束)该值确实是一个枚举值(由于不受约束的旋律) 避免不必要的拳击(由于不受限制的旋律) 它缓存所有描述,以避免在每个呼叫中​​使用反射(由于无约束旋律) 它比其他解决方案少的代码! 因此,以下是使此工作正常进行的步骤: 在程序包管理器控制台中,“安装程序包不受约束的旋律” 在模型上添加一个属性,如下所示: //Replace "YourEnum"

如何在Razor视图页面中导入名称空间?

ぐ巨炮叔叔 提交于 2019-12-22 21:56:23
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 如何在Razor视图页面中导入名称空间? #1楼 终于找到答案了。 @using MyNamespace 对于VB.Net: @Imports Mynamespace 如果要在整个应用程序中包含名称空间,请查看@Javad_Amiry的答案。 #2楼 在ASP.NET MVC 3 Preview1中,可以使用Global.asax.cs中的此代码在所有剃刀视图上导入名称空间 Microsoft.WebPages.Compilation.CodeGeneratorSettings.AddGlobalImport("Namespace.Namespace"); 我希望在RTM中可以通过Web.config部分完成操作。 #3楼 我认为为了在剃刀视图中导入名称空间,您只需要添加以下方式: @using XX.YY.ZZ #4楼 对于图书馆 @using MyNamespace 对于模型 @model MyModel #5楼 你可以试试这个 @using MyNamespace 来源: oschina 链接: https://my.oschina.net/u/3797416/blog/3145989

如何处理ASP.NET MVC Framework中的多个提交按钮?

冷暖自知 提交于 2019-12-22 19:39:39
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 是否有一些简单的方法可以处理来自同一表单的多个提交按钮? 例: <% Html.BeginForm("MyAction", "MyController", FormMethod.Post); %> <input type="submit" value="Send" /> <input type="submit" value="Cancel" /> <% Html.EndForm(); %> 任何想法如何在ASP.NET Framework Beta中执行此操作? 我搜索过的所有示例中都包含一个按钮。 #1楼 大卫·芬德利(David Findley)在他的ASP.Net Weblog上撰写了有关执行此操作的三种不同选择的信息。 阅读本文 中具有相同形式的多个按钮, 以查看他的解决方案以及每种解决方案的优缺点。 恕我直言,他提供了一种非常优雅的解决方案,该方案利用了装饰动作的属性。 #2楼 对于每个提交按钮,只需添加: $('#btnSelector').click(function () { $('form').attr('action', "/Your/Action/); $('form').submit(); }); #3楼 我试图对所有解决方案进行综合,并创建了一个[ButtenHandler]属性

ASP.NET入门教程(五)发表文章

时间秒杀一切 提交于 2019-12-18 09:28:13
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> ASP.NET入门教程(五)发表文章 本部分主要学习文章的发表、表单数据验证、百度富文本编辑器的使用。 一、创建发表文章视图模型 1. 在Models文件夹下,新建ArticleCreateViewModel类,内容如下: using System.ComponentModel.DataAnnotations; namespace MyStudy.Models { public class ArticleCreateViewModel { [Display(Name ="文章标题")] public string title { get; set; } [Display(Name ="作者")] public string author { get; set; } [Display(Name ="文章内容")] public string content { get; set; } } } 二、创建发表文章视图 1.在Article控制器的第一个Create方法中,右键点击,添加视图 然后点击添加即可,将以下代码删除 <h2>Create</h2> <h4>ArticleCreateViewModel</h4> <hr /> 三、百度富文本编辑器的使用 1.从百度官网下载富文本编辑器 http:/

你为什么要使用表达 <Func<T> >而不是Func <T> ?

Deadly 提交于 2019-12-15 21:11:06
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 我了解lambda和 Func 和 Action 代表。 但是表情让我难过。 在什么情况下,您将使用 Expression<Func<T>> 而不是普通的旧 Func<T> ? #1楼 我想添加一些关于 Func<T> 和 Expression<Func<T>> 之间的区别的注释: Func<T> 只是一个普通的老式MulticastDelegate; Expression<Func<T>> 以表达式树的形式表示lambda表达式; 表达式树可以通过lambda表达式语法或API语法构造; 表达式树可以编译为委托 Func<T> ; 从理论上讲,逆转换是可能的,但是这是一种反编译,因为它不是一个简单的过程,所以没有内置功能; 可以通过 ExpressionVisitor 观察/翻译/修改表达树; IEnumerable的扩展方法与 Func<T> ; IQueryable的扩展方法使用 Expression<Func<T>> 。 有一篇文章描述了代码示例的详细信息: LINQ:Func <T>与Expression <Func <T >> 。 希望对您有所帮助。 #2楼 主要原因是当您不想直接运行代码,而是想对其进行检查时。 这可能有多种原因: 将代码映射到其他环境(即,将C#代码映射到Entity