0

0

http://www.codesnippet.info/ 建站技术备忘录_html/css_WEB-ITnose

php中文网

php中文网

发布时间:2016-06-21 08:49:03

|

1621人浏览过

|

来源于php中文网

原创

网站开发中技术问题的笔记

javascript

bug思考

  • 200 ok真的表示没有问题吗?有时候status 200作为webapi的返回值,并不表示真的ok,例如取得一个文件,没有取到,但是返回值也会是200。200只是表示一个webapi执行完毕,没有异常而已,并不表示肯定成功。

  • IIS7.0 上传文件失败,返回404。乍一看是资源无法找到,其实是设定问题,上传文件的最大长度限制,还需要下面这样的配置。maxRequestLength很多文章都提到了,maxAllowedContentLength则很多文章没有提到。

                                                                                
  • encodeurl 不能转 ‘&’ 符号使用Replace 将 ‘&’ 符号转成 ‘%26’。

关于QQ OAuth

关于审核的问题,

以下经验基于 MVC 5.2.3

ReSharp之后的问题

使用了ReSharp的移除没有使用(Remove Unused Reference)的引用之后,Package项目配置文件中的一些Item会被删除掉,在项目发布的时候一些动态链接库不会被发布到BIN目录下面,导致以下这样的问题

未能加载文件或程序集“Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。系统找不到指定的文件。

所以一般建议在使用ReSharp之前将项目进行CheckIn,如果出现特殊情况则执行Redo即可。(具体配置文件:packages.config)

                                                

HttpRequestValidationException:

由于安全上的原因,Asp.net中QueryString等不允许出现 这样的字符如果你确认的确需要跳过安全验证,里面最简单的解决方法是使用Unvalidated版本

string strArticalID = context.Request.Unvalidated.Form["ArticalID"];

Debug版本的时候,VS无法察看很多变量的值,例如Ajax调用ASHX

如果出现多个控制器的时候,可能是因为你的BIN目录没有删除干净,有一个过期的,以前版本的DLL导致的

Asp.net MVC在运行的时候,会将所有Bin下面的DLL进行解析,如果有一个旧的DLL,例如是改名前的DLL残留在Bin目录中,则会出现多个同名控制器的问题。(在VS中怎么检查都不会发现这个问题的!)

如何设定启动Areas?

参见RouteConfig的编写,这里可以指定默认的Area,写法必须严格按照例子.Home_Default这个路由名字不要使用(可能系统会默认注册这个名字)(错误信息:路由集合中已存在名为“Home_default”的路由。路由名称必须唯一。)

View的Layout

如果不指定Layout,默认使用 Views/Shared/_Layout(_ViewStart.cshtml)

类似于React的组件,可以使用DisplayFor来显示组件

组件放在Shared/DisplayTemplate/ 下面

px 不能省略,RenderBody() 需要CSS3规范的Style

加上去的话,类名称必须区分大小写,写错则不能识别

这是个浏览器兼容性的话题。有时候你会发现HTML的Class名称大小写写错了,样式也会生效,这是因为你没有加上 DOCTYPE 这个TAG。如果加上之后,则类名称不允许忽略大小写。

Area名称不要使用实体名称,或者其它类的名称,不然需要名字空间前缀

修改Area名称后注意各处名字空间的统一

每个Area的webConfig里面,可以添加默认名字空间

                        

GET方法如果有参数,则如果需要对应可空的情况,可以使用参数默认值

public ActionResult Index(int PageNo = 1)

*如果同时存在 没有参数和带参数的,会报错。可选参数倒没有问题。。。

DreamGen
DreamGen

一个AI驱动的角色扮演和故事写作的平台

下载

Controller里面设置过 ViewBag.XXXX,如果在之前使用过Model.XXXX,则ViewBag.XXXX变为Model.XXXX

$ajax的变体

可以使用 $.post来简化Post操作

ASHX里面如何使用Session

添加 IRequiresSessionState 接口即可

    public class PublishPost : IHttpHandler, IRequiresSessionState

如何用 Href 实现Post

注意 forms的下标注意 POST方法必须写明

接受

拒绝 审核留言:

Javascript操作DOM的Style,属性是直接使用的,不是“xxx:xxx”

document.getElementById("ReplySubmit_" + PreViewReplyId).style.display = "none";

Bootstrap的btn-primary 可能有Submit的功能!!!

Bootstrap的btn-primary 可能有Submit的功能(待验证)

使用过的FileStream可能被清空,注意位置和长度

许多对于Stream的操作都会导致流的位置到EOS,或者整个流的被使用完了(无法复用?)

MvcHtmlString 命令页面生成器不要再次转换字符串了,不然的话,空格等特殊字符将被模板系统自动转换

Jquery Wrap,可以给元素增加父元素。。。。。强大啊。。。

   $(document).ready(function () {        $(".PostBody img").wrap(            function () {                var filepath = this.src;                var imagefilename = filepath.substring(_urlstr.length + "/FileSystem/Thumbnail?filename=".length)                @{                    string Image = ConfigurationManager.AppSettings["Image"];                    string jsCode = string.Empty;                    if (Image == "QiNiu")                    {                        jsCode = "filepath = '" + @ConfigurationManager.AppSettings["URLBASE"]  + "' + imagefilename;";                    }else                    {                        jsCode = "filepath = '/FileSystem/Image?filename=' + imagefilename;";                    }                }                @MvcHtmlString.Create(jsCode)                //原图是外部连接的处理                if (this.src.indexOf("/FileSystem/Thumbnail") == -1){                    if (this.src.indexOf("@ConfigurationManager.AppSettings["URLBASE"]") == -1){                        filepath = this.src;                    }                }                return "
" } );

C# && Mongo

可以使用转换规则将DateTime变成Local,不用特性

使用特性:

        ///         ///     创建时间        ///         [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime CreateDateTime;

使用转换规则

   BsonSerializer.RegisterSerializer(typeof(DateTime), new DateTimeSerializer(DateTimeKind.Local));

可以使用IgnoreIfNullConvention,则空数据不序列化,

也可以IgnoreExtraElementsConvention忽略数据中有,但是数据模型中没有的字段。例如数据模型改名之后,数据库里面的残留字段。

                pack.Add(new IgnoreExtraElementsConvention(true));                pack.Add(new IgnoreIfNullConvention(true));

属性和静态变量的区别

属性,公共变量 序列化 静态变量,const 不序列化

可以尝试类的嵌套,可以正常序列化

快速JSON

using Newtonsoft.Json;var result = new{    success = 1,    message = "提示的信息,上传成功或上传失败及错误信息等。",    url = filename};string json = JsonConvert.SerializeObject(result);context.Response.Write(json);

HttpPostedFileWrapper

new HttpPostedFileWrapper(file) as HttpPostedFileBase

使用动态对象快速反序列

dynamic obj = JsonConvert.DeserializeObject(sr.ReadToEnd());

图片放大方案

MongoDB Query.EQ可以用来查找列表中是否有数据

IMongoQuery tagNameQuery = Query.EQ(nameof(TagName),tag);

Distinct对于数组的处理,是拆开数组项目,进行Distinct!!!!使用In表示两个数组是否存在交集(因为In的相等,对于数组是拆开判断的)

Great Linq

Linq可以做很多强大的工作

x.GroupBy((article) => article.OwnerId).Select(group => new { ownerId = group.Key, Count = group.Count() });

Web(ASHX)服务改名:

修改名字的时候,需要同时修改View MarkUp的代码

ActionResult 可以通过来设置缓存时间

        ///         /// 缩略图(JPEG)        ///         ///         ///         [OutputCache(Duration = int.MaxValue)]        public ActionResult Thumbnail(string filename)        {            var stream = new MemoryStream();            string Thumbnail = ConfigurationManager.AppSettings["Thumbnail"];            switch (Thumbnail)            {                case "Mongo":                    MongoStorage.GetFile(stream, filename, "Thumbnail");                    break;                case "FileSystem":                    stream = FileSystemStorage.GetFile(filename, "Thumbnail");                    break;                case "QiNue":                    //实际上这里直接使用QiNue的URL就可以了                    stream = QiniuStorage.GetFile(filename);                    break;            }            return File(stream.ToArray(), "image/jpeg");        }

BSonDocument 转 ClassObject

BsonSerializer.Deserialize
(doc)

MongoDB暂时无法中文检索在Win平台,中文需要企业版的MongoDB

原因是系统不知道如何进行分词,可以使用第三方的分词组件

MarkDown Editor(Pandao)研究

http://pandao.github.io/editor.md/

Editor 的可配置项目

打开源代码可以看到所有的可配置项目

需要添加

        

font文件夹也必须,不然部分图标缺失

Convert MD To HTML

Install-Package CommonMark.NET

plugins

图片上传等功能需要使用这个Plugins文件夹里面的插件

autofocus:false

防止自动获得焦点,页面开始时候垂直位置不正确

对于错误的MD语法,该编辑器HTML预览的时候不会报错!!!

浏览器兼容性问题

Chromn 12px 字体变为 16px

由于缩放问题造成的,CSS里面12px,如果缩放之后,系统还是维持原来的字体大小,整个字体在渲染的时候进行放大处理

本文将和 http://www.codesnippet.info/Article/Index?ArticleId=00000004 实时同步

HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

57

2026.01.23

c++空格相关教程合集
c++空格相关教程合集

本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

57

2026.01.23

yy漫画官方登录入口地址合集
yy漫画官方登录入口地址合集

本专题整合了yy漫画入口相关合集,阅读专题下面的文章了解更多详细内容。

237

2026.01.23

漫蛙最新入口地址汇总2026
漫蛙最新入口地址汇总2026

本专题整合了漫蛙最新入口地址大全,阅读专题下面的文章了解更多详细内容。

393

2026.01.23

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

17

2026.01.23

php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

103

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

73

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

81

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

70

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号