【备忘】ASP.NET MVC 5 升级到 ASP.NET Core MVC 的部分变化

    正在将一个 .net 4.5 的项目(MVC 5)升级到 .net core 2.1,中间遇到了许多的修改,记在下面,帮大家少走弯路。

  1. System.Drawing 下面很多类已经不存在(如Bitmap),可以下载扩展包,例如:https://github.com/zkweb-framework/ZKWeb.System.Drawing,或:https://www.nuget.org/packages/System.Drawing.Common/
  2. Controller 中已经没有 OnResultXX() 的重写方法,解决方法:让 Controller 实现 IResultFilter 接口即可
  3. RouteData.GetRequiredString("controller") 方法已经不被支持,可以使用 RouteData.Values["controller"].ToString() 方法来取代
  4. Cookie 的写入方法如:
     Response.Cookies.Append("SMS", "1", new CookieOptions()
     {
         Expires = DateTime.Now.AddMinutes(2)
     });
  5. 例如 OnResultExecuting(ResultExecutingContext filterContext) 中的 filterContext.Controller 已经改为 object 类型,如果你确定使用的是默认的 Controller 的话,可以这样写:
    (filterContext.Controller as Controller).ViewData
  6. Controller 中的 Session["xx"] 访问方式改为 HttpContext.Session.GetString("xx")
  7. MvcHtmlString 变为 HtmlString,接口为 IHtmlContent
  8. [ValidateInput(false)] 标签已经不再需要添加:https://github.com/aspnet/Mvc/issues/324
  9. Response.ClearContent(); 已经不能使用, Response.BinaryWrite() 方法改为 Response.Body.Write()
  10. new UrlHelper(helper.ViewContext.RequestContext) 改为 new UrlHelper(helper.ViewContext)
  11. Request.UserHostName 改为 Request.Host.Value
  12. Request.Url.Host 改为 Request.Host,注意:通常会包含端口号,或使用:httpContext.Connection.RemoteIpAddress
  13. Request.UserHostAddress 改为 httpContext.Features.Get<IHttpConnectionFeature>()?.RemoteIpAddress
  14. HttpUnauthorizedResult 改名为 UnauthorizedResult
  15. Controller 的 OnAuthentication() 重写方法已经没有了
  16. HtmlHelper.AttributeEncode() 方法已失效
  17. Request..HttpMethod 改为 Request.Method
  18. Request.IsSecureConnection 可以使用 Request.IsHttps
  19. Request.Url.PathAndQuery 改为 Request.Path + Request.Query,可以自己写一个扩展方法进行封装
  20. Request.UrlReferrer 已经不被支持,可以自己封装:request.Headers["Referer"].ToString()
  21. Request.UserAgent 已经不被支持,可以自己封装:request.Headers["User-Agent"].ToString()
  22. Request.IsAjaxRequest 方法在.net core 中没有支持,可以自行扩展:
        /// <summary>
        /// Determines whether the specified HTTP request is an AJAX request.
        /// </summary>
        /// 
        /// <returns>
        /// true if the specified HTTP request is an AJAX request; otherwise, false.
        /// </returns>
        /// <param name="request">The HTTP request.</param><exception cref="T:System.ArgumentNullException">The <paramref name="request"/> parameter is null (Nothing in Visual Basic).</exception>
        public static bool IsAjaxRequest(this HttpRequest request)
        {
            if (request == null)
                throw new ArgumentNullException("request");

            if (request.Headers != null)
                return request.Headers["X-Requested-With"] == "XMLHttpRequest";
            return false;
        }
    }

 

     注意:命名空间多数都会有变化,根据IDE提示添加即可。

转载于:https://www.cnblogs.com/szw/p/8976505.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ASP.NET个人办公助理系统是一种基于ASP.NET技术开发的办公辅助系统,旨在提高个人工作效率和组织能力。 该系统可以提供以下功能: 1. 任务管理:用户可以创建、编辑和删除日常任务,并设置优先级、截止日期和提醒功能。系统会自动提醒用户即将到期的任务,帮助用户及时完成工作。 2. 日程管理:用户可以创建个人日程安排,包括会议、约会和重要事件。系统会提醒用户即将开始的日程,并提供日程安排的时间和地点等详细信息。 3. 文档管理:用户可以上传、下载和编辑文件,包括文档、图片和视频等。系统支持文件夹管理和权限设置,方便用户按需组织和共享文件。 4. 通讯录:用户可以创建个人通讯录,并添加联系人信息,如姓名、电话和电子邮件等。系统支持搜索和快速导航功能,方便用户快速找到所需联系人。 5. 个人笔记:用户可以记录工作心得、灵感和录等。系统提供富文本编辑器,支持格式化文字、插入图片和链接等操作,方便用户整理和分享个人笔记。 6. 消息通知:用户可以接收系统发送的即时消息和通知,包括任务提醒、日程变更和新文件上传等。系统会将消息显示在用户的工作台上,方便用户及时了解最新动态。 ASP.NET个人办公助理系统具有响应式设计,即可适用于计算机、平板和手机等不同设。用户可以通过浏览器访问系统,无需安装额外的应用程序。 总之,ASP.NET个人办公助理系统通过集成和管理个人工作信息,帮助用户提升工作效率、组织能力和信息管理能力,提供全方位的办公辅助功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值