ホームページ >ウェブフロントエンド >htmlチュートリアル >http://www.codesnippet.info/ ウェブサイト構築技術メモ_html/css_WEB-ITnose

http://www.codesnippet.info/ ウェブサイト構築技術メモ_html/css_WEB-ITnose

WBOY
WBOYオリジナル
2016-06-21 08:49:031477ブラウズ

Web サイト開発における技術的な問題に関するメモ

JavaScript

バグの考え

  • 200 OK は本当に問題がないことを意味するのでしょうか? WebAPIの戻り値としてStatus 200が使用されることがありますが、実際にOKというわけではありません。たとえば、ファイルを取得しても取得できなかった場合、戻り値は200になります。200はWebAPIであることを意味するだけです。は例外なく実行されましたが、それが成功したことを意味するものではありません。

  • IIS7.0 はファイルのアップロードに失敗し、404 を返しました。一見、リソースが見つからないように見えますが、実は設定の問題で、アップロードするファイルの長さの制限には以下の設定が必要です。 maxRequestLength については多くの記事で言及されていますが、maxAllowedContentLength については多くの記事で言及されていません。

  <configuration>    <system.web>      <compilation debug="true" targetFramework="4.5" />      <!--maxRequestLength就是文件的最大字符数,最大值不能超过2个G左右,executionTimeout是超时时间-->      <httpRuntime targetFramework="4.5" maxRequestLength="1073741824" executionTimeout="3600" />    </system.web>    <system.webServer>      <security>        <requestFiltering>         <!--修改服务器允许最大长度-->         <requestLimits maxAllowedContentLength="1073741824"/>       </requestFiltering>     </security>   </system.webServer> </configuration>
  • encodeurl は、「&」記号を「%26」に変換するために「&」記号を変換できません。

QQ OAuth について

監査の問題については、

  • 基本情報の共同編集者アカウントに 359884458

    を必ず追加してください

  • ログイン後のページでは、ログインした人の名前を明確に表示する必要があります

次のエクスペリエンスは MVC 5.2.3 に基づいています

ReSharp 後の問題

ReSharp を使用して未使用の参照を削除します その後、パッケージ内のいくつかの項目が表示されますプロジェクトのリリース時にプロジェクト構成ファイルが削除され、一部のダイナミック リンク ライブラリが BIN ディレクトリに公開されないため、次の問題が発生します

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

したがって、通常は、ReSharp を使用する前にプロジェクトをチェックインすることをお勧めします。特別な状況が発生した場合は、Redo を実行するだけです。 (特定の構成ファイル:packages.config)

<?xml version="1.0" encoding="utf-8"?><packages>  <package id="Antlr" version="3.5.0.2" targetFramework="net451" />  <package id="bootstrap" version="3.3.6" targetFramework="net451" />  <package id="CommonMark.NET" version="0.11.0" targetFramework="net451" />  <package id="Elasticsearch.Net" version="2.1.1" targetFramework="net451" />  <package id="jQuery" version="2.2.2" targetFramework="net451" />  <package id="jQuery.Validation" version="1.15.0" targetFramework="net451" />  <package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net461" />  <package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net461" />  <package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net461" />  <package id="Microsoft.AspNet.WebApi" version="5.2.3" targetFramework="net451" />  <package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net451" />  <package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net451" />  <package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net451" />  <package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net461" />  <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.1" targetFramework="net451" />  <package id="Microsoft.jQuery.Unobtrusive.Validation" version="3.2.3" targetFramework="net461" />  <package id="Microsoft.Net.Compilers" version="2.0.0-beta1" targetFramework="net451" developmentDependency="true" />  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net461" />  <package id="Modernizr" version="2.8.3" targetFramework="net451" />  <package id="Newtonsoft.Json" version="8.0.3" targetFramework="net451" />  <package id="NPOI" version="2.1.3.1" targetFramework="net451" />  <package id="Respond" version="1.4.2" targetFramework="net451" />  <package id="ThoughtWorks.QRCode" version="1.1.0" targetFramework="net451" />  <package id="WebGrease" version="1.6.0" targetFramework="net451" /></packages>

HttpRequestValidationException:

セキュリティ上の理由により、Asp.net の QueryString には a8093152e673feb7aba1828c43532094 などの文字を含めることはできません。セキュリティ検証をスキップする必要があることを確認した場合、最も簡単な解決策は、未検証バージョン

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

を使用することです。デバッグ バージョンでは、VS は次のような多くの変数の値を表示できません。 ASHX を呼び出す Ajax として

複数のコントローラーが表示される場合は、BIN ディレクトリが削除されておらず、以前のバージョンの期限切れの DLL が存在する可能性があります。

Asp.net MVC が実行されている場合。を実行すると、以下の DLL が解析されます。Bin ディレクトリに名前変更前の DLL が残っていると、同じ名前のコントローラが複数存在するという問題が発生します。 (VS でどのように確認しても、この問題は見つかりません。)

起動エリアの設定方法は?

RouteConfig の記述を参照してください。デフォルトのエリアはここで指定できます。記述は例に厳密に従っている必要があります。ルート名 .Home_Default は使用しないでください (システムはデフォルトでこの名前を登録する可能性があります) (エラー メッセージ: 「Home_default」という名前のルートはルート コレクションに既に存在します。ルート名は一意である必要があります)。 .)

View のレイアウト

Layout が指定されていない場合、デフォルトで Views/Shared/_Layout (_ViewStart.cshtml) が使用されます

React に似たコンポーネントの場合、 DisplayFor を使用してコンポーネントを表示できます

コンポーネントは Shared/DisplayTemplate/ 以下に配置されます

px は省略できません。RenderBody() には CSS3 標準の Style

84a4b07271e65d4dcedb801eaf14be5a 追加する場合、クラス名は大文字と小文字を区別する必要があります。正しく記述しないと認識されません。

これはブラウザの互換性に関するトピックです。場合によっては、HTML クラス名が間違った大文字で書かれていて、そのスタイルが有効になってしまうことがあります。これは、DOCTYPE タグを追加していないためです。追加した場合、クラス名で大文字と小文字を区別することはできません。

エリア名にはエンティティ名や他のクラス名を使用しないでください。そうでない場合は、名前空間プレフィックスが必要です。

エリア名を変更した後は、すべての場所での名前空間の統一に注意してください

各領域 webConfig では、デフォルトの名前空間を追加できます

<system.web.webPages.razor>    <pages pageBaseType="System.Web.Mvc.WebViewPage">        <namespaces>            <add namespace="System.Web.Mvc" />

GET メソッドにパラメータがある場合、null 許容状況に対応する必要がある場合は、パラメータのデフォルト値

public ActionResult Index(int PageNo = 1)
* パラメーターが存在しない場合とパラメーターが両方とも存在しない場合、エラーが報告されます。オプションのパラメータは問題ありません。 。 。

ViewBag.XXXX がコントローラーに設定されている場合、Model.XXXX が以前に使用されていた場合、ViewBag.XXXX は Model.XXXX になります

$ajax のバリエーション

はい 使用します。 $.post で Post 操作を簡素化します

ASHX で Session を使用する方法

IRequiresSessionState インターフェイスを追加するだけです

    public class PublishPost : IHttpHandler, IRequiresSessionState
Href を使用して Post を実装する方法

フォームの添字に注意してください。POST メソッドは

<div class="SingleBox">    <a href="/Admin/Accept?ArticalID=@Model.ArticalInfo.Sn" class="btn btn-sm btn-success" onclick="return OpenModal(this.href, '确认接受', '确认接受该条记录?')">        <span class="glyphicon glyphicon-remove"> 接受 </span>    </a>    <br /><br />    <form action="/Admin/Reject" method="post">        <a href="javascript:document.forms[2].submit();" class="btn btn-sm btn-danger" onclick="return OpenModal(this.href, '确认拒绝', '确认拒绝该条记录?')">            <span class="glyphicon glyphicon-remove"> 拒绝 </span>        </a>        审核留言:        <input type="text" name="message" style="width:400px" />        <input type="hidden" name="ArticalID" value="@Model.ArticalInfo.Sn" />    </form></div>
JavaScript が DOM のスタイルを操作するため、「xxx:xxx」

Bootstrap の btn -primary には Submit の機能がある可能性があります。 ! !
document.getElementById("ReplySubmit_" + PreViewReplyId).style.display = "none";

ブートストラップの btn-primary には送信機能がある可能性があります (検証予定)

使用された FileStream はクリアされる可能性があります。位置と長さに注意してください

ストリーム上の多くの操作は、その結果、ストリームの位置が 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 "<div class='imgArea'><a href='" + filepath + "'></a></div>"            }        );

C# && Mongo

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

使用特性:

        /// <summary>        ///     创建时间        /// </summary>        [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());

图片放大方案

<script type="text/javascript" src="http://tsi.github.io/jQuery.imgBox/imgBox/jquery.imgbox.js"></script><link rel="stylesheet" href="http://tsi.github.io/jQuery.imgBox/imgBox/imgbox.css" /><script>    $(document).ready(function () {        $(".PostBody img").wrap(            function(){                return "<div class='imgArea'><a href='" + this.src + "'></a></div>"            }        );        $(".PostBody .imgArea a").imgbox({            slideshow: false        });    });</script>

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 可以通过来设置缓存时间

        /// <summary>        /// 缩略图(JPEG)        /// </summary>        /// <param name="filename"></param>        /// <returns></returns>        [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<Article>(doc)

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

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

MarkDown Editor(Pandao)研究

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

Editor 的可配置项目

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

需要添加

    <script src="~/Content/editormd/editormd.min.js"></script>    <link rel="stylesheet" href="~/Content/editormd/css/editormd.css" />

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 实时同步

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。