問題タブ [aspdotnetstorefront]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - AspDotNetStorefrontとSitecoreの統合
AspDotNetStorefrontとSitecoreを統合しようとした人はいますか?私はここ数日、2つのシステムをうまく連携させる方法を考え出そうとしてきましたが、私が言えることからは実現可能ではないようです。私がこれまでに遭遇したいくつかの問題:
- 2つの間の認証(AspDotNetStorefrontには独自の実装があり、Sitecoreは.NETメンバーシップを使用/拡張するだけです)
- AspDotNetStorefrontのメインDLLは、イエロースクリーンが表示されたときにスタックトレースにポップアップするものですが、そのDLLは難読化されているため、問題が何であるかを理解できません。
最大の問題は、既存のAspDotNetStorefrontアプリケーションをeコマースバックエンドとして維持し、Sitecoreを使用して他のすべてを実行する必要があることです。AspDotNetStorefrontにはCMSが含まれていますが、これは実際には基本的なコンテンツページ以外には受け入れられないソリューションです。
私がこれについてどうやって行くのかについて何か考えはありますか?
編集:
私は、このすべてを現在直面しているさまざまな問題に分解し、それぞれを私が知っている限り効率的に解決することにしました。ここにあるものを詳しく説明し、新しいものに遭遇したときに更新します。
問題1:2つのシステム間の認証。
これは、フォーム認証チケットに精通していれば、実際にはそれほど悪くはありません。私は当時はそうではありませんでしたが、十分に早く学習しています。2つのシステムが同じ暗号化情報を共有している限り、以下の承認された回答に記載されているように、Cookieを使用してシステム間で情報をやり取りするのは簡単です。もう1つのキッカーは、AspDotNetStorefront CustomerテーブルのCustomerGUIDをSitecoreユーザーテーブルのユーザーID(標準のASP.NETメンバーシップ)に設定する必要があることです。これまでのところ、このアプローチはかなりうまく機能しているようです(私はまだ概念実証段階にあります。
これを試みる必要がある場合に留意すべきもう1つの点は、AspDotNetStorefrontには、基本的に必要なことをすべて実行するために使用できるWebサービスが付属していることです。同じ暗号化キーを使用しているため、クリアテキストのパスワードを渡すよりも安全にこのサービスを使用してストアフロント側にログインできます(メソッドを自分で作成する必要がありましたが、標準になるとは思いません。間違っているので教えてください)。とにかくすべてがサーバー側で発生するので、それが大したことではないかと思いますが。
問題2:製品データを取得する
これはもう少し面倒でした。前述のWebサービスには、回避するのに苦労したいくつかの問題があります。ただし、データベースは同じサーバー上にあるため、実際に必要なのは価格とIDだけなので、Storefrontデータベースの各製品のProductGUID列をSitecoreアイテムIDと一致するように設定することにしました。 Sitecoreデータベース内の対応するアイテムの。このように、いくつかの場所でのみ使用されるProductIDと価格情報を取得するための簡単なクエリが必要です。それ以外はすべてSitecoreに格納されます。
Googleからわかる限り、誰かが追加するものがあれば、これまで誰も実際にこれを行ったことがないので、この特定のトピックに関するリソースを見つけるのに多くの問題があります。
アップデート:
統合は実際に可能であり、私たちのサイトは1週間半稼働しており、統合に関連する問題はほとんどありません。これは私が個人的なレベルで実際に行うことをお勧めすることではありませんが、実際にはそれをやめることは可能です。
asp.net - varchar サイズを設定しないと SQL が結果を返さないのはなぜですか?
渡された色に基づいて結果を取得する SQL スクリプトがありますが、varchar として定義された変数のサイズを (50) に設定しない限り、結果は返されません。
使用する場合:like ''+@Colour+'%'
は機能しますが、必要のない、または必要のない結果が返される場合に備えて、実際には使用したくありません。
列 FieldValue の型は Varchar(Max) です (このフィールドはさまざまなものを格納できるため、変更できません)。これは aspdotnetstorefront パッケージの一部であるため、テーブルやフィールド タイプを実際に変更することはできません。
これは機能しません:
しかし、これはうまくいきます:
コードは次のコンテキストで使用されますが、どちらの方法でも機能するはずです
何か案は?
また、私はサイズを設定することはできません<queryparam paramname="@Colour" paramtype="runtime" requestparamname="pCol" sqlDataType="varchar" defvalue="" validationpattern=""/>
c# - IDataReader からフィールドを読み取るときの断続的な System.IndexOutOfRangeException
コードに非常に奇妙な問題があり、失敗することはないと思います。これは、AspDotNetStoreFront に基づいて、ある程度のトラフィックがある Web サイトですが、それほど大きくはありません。リーダーからデータベース フィールドを読み取ろうとすると、サイトが断続的にクラッシュします。これは、Web サイトのさまざまな場所で発生します。このようなコードの例は、以下のobject pValue = rs["PropertyValueString"];の行にあります。
これは SqlClient の標準的な使用法であり、問題はありません。エラーのスタック トレースは次のとおりです。
AspDotNetStorefront.ASPDNSFProfileProvider で System.Data.SqlClient.SqlDataReader.GetOrdinal(String name) で System.Data.ProviderBase.FieldNameLookup.GetOrdinal(String fieldName) で System.IndexOutOfRangeException が発生しました。 System.Configuration.SettingsBase.GetPropertyValueByName(String propertyName) で System.Configuration.SettingsBase.GetPropertyValueByName(String propertyName) で System.Configuration.SettingsBase.GetPropertiesFromProvider(SettingsProvider プロバイダー) で AspDotNetStorefront.ASPDNSFProfileProvider.GetPropertyValues(SettingsContext コンテキスト、SettingsPropertyCollection settingsProperties) System.Web.Profile.ProfileBase.GetInternal(String propertyName) で (String propertyName) System.Web.Profile.ProfileBase.get_Item(String propertyName) で System.Web.Profile.ProfileBase.GetPropertyValue(String propertyName) で AspDotNetStorefront.SkinBase.OnPreInit(EventArgs e) で System.Web.UI.Page.PerformPreInit() で System.Web.UI.Page.ProcessRequestMain (ブール値 includeStagesBeforeAsyncPoint、ブール値 includeStagesAfterAsyncPoint)
サイトがクラッシュした場合、IIS を再起動して元に戻す必要があります。.NET 3.5 および SQL 2008 を搭載した Windows Server 2008 上にあり、すべて最新です。マシンは 64 ビットで、SQL Server では 32 ビット モードが有効になっており、「クラシック パイプライン モード」を使用するアプリケーション プールもあります。接続文字列は
どんな助けでも大歓迎です!!
asp.net - メディア チェイスと aspdotnetstorefront
非常に重いバックエンド統合要件を持つ e コマース プロジェクトを開始しています。カスタマイズが容易で、エンタープライズ レベルで機能する e コマース パッケージが必要です。Media Chase と Aspdotnetstorefront に精通している場合は、あなたの経験と、どちらに傾いているか (またはまったく別のプラットフォームをお勧めするか) を教えてください。.net である必要があります。ありがとう!
html - ドロップダウン メニューが IE で機能しない
メニューを考案しました。Firefox と Chrome では問題なく動作しますが、IE では動作しません。
ここにコードを掲載しています。誰かが私を正しい方向に導くことができますか?
html - xslをhtmlに変換する方法は?
ASPDOTNETSTOREFRONTで使用されるxmlパッケージがあります。
左側のメニューなどのレイアウトを作成します。
しかし、XSLTを変換して、作成されるHTMLを確認するにはどうすればよいですか。
私は出力なしで夢中になっています。
javascript - divにカーソルを合わせると、メニューが表示されます
ホバーでカスケードする次のメニューがありますが、マウスがdivでホバーしている場合など、いくつかの条件付きチェックを追加して、メニューを下にスライドさせ続ける必要があります。
また、マウスをLIに合わせた場合は、メニューを確認してください。
ご覧のとおり、「div」を離れると、スライドして元に戻ります。
私は立ち往生しています...そしてifステートメントなどを何時間も検索しようとしましたが、構文が正しくありません。
javascript - 選択したドロップダウン リストの値に基づいてリンクを非表示にする
ドロップダウンリストの現在の値を読み取り、ページ上の特定のリンクを非表示にするjqueryを作成する必要があります。
ドロップダウン リストはロケール セレクタです。したがって、「英語」を選択するとリンクを非表示にしたいのですが、フランス語を選択するとリンクを残す必要があります。
どうすればこれができるか教えてもらえますか? これを学びたい。ありがとう
asp.net - dotTrace プロファイラーが原因で AspDotNetStorefront Web サイトがサーバー エラーをスローするのはなぜですか?
当社には、AspDotNetStorefront に基づいた ASP.NET e コマース サイトがあり、約 6 か月間運用されています。私の開発マシンで dotTrace を使用してプロファイリングしようとしています。dotTrace は、既定のページを読み込むときに .NET がエラーをスローする原因となります。エラーは次のとおりです。
「/」アプリケーションでサーバー エラーが発生しました。
ファイルまたはアセンブリ 'AspDotNetStorefrontCore、Version=9.0.1.3、Culture=neutral、PublicKeyToken=null' またはその依存関係の 1 つを読み込めませんでした。厳密な名前のアセンブリが必要です。(HRESULT からの例外: 0x80131044)
エラーを修正するために 2 つのルートを使用しましたが、どちらも機能しませんでした。
1) サイトを再構築し、各 Storefront dll に厳密な名前で署名しました。
2) sn ユーティリティを使用して dll を登録し、CLR が厳密な名前の検証をスキップするようにしました。
また、Fusion Assembly Binding Log Viewer を使用して手がかりを探してみました。ログには何も明らかではありませんでした。
さらに、dotTrace でアプリケーションを WebDev アプリと IIS アプリの両方として実行できるようにしました。どちらの方法でも同じ結果が得られます。
どんなアイデアでも大歓迎です!
javascript - jqueryを使用した数量テキストボックスの条件付き変更?
私は問題を抱えています.25以上を表示するように数量テキストボックスを設定するためにいくつかのjqueryに取り組んでいます。パーソナライゼーションの文言に空の文字列があるかどうかを確認し、そうでない場合は、明らかにキット製品として 25 個の数量を適用し、パーソナライズします。
キット製品の重要な部分は次のとおりです。
Kit Productというページにdiv.idがラップされているため、キット製品であることがわかります。
私の問題は、特定の製品のこのキット製品コードをオーバーライドする必要があることです。これを迅速な修正として行う最善の方法は、divの内容を確認することだと思いました。
Exclusive Handmade Box が見つかった場合、ユーザーがテキスト ボックスに 1 以上の数量を入力できるようにします。
次のコードを試しました:
しかし、これは 1 を強制するだけです。私は今、本当に迷っています。できる限り説明しました。以下は、jsfiddle 内のページの縮小例です。
あなたが助けてくれることを本当に願っていますか?
詳細情報:
ほとんどのキット製品は、管理セクションでキット製品に適用される xml パッケージで定義されます。ただし、まだ製品ですが、数量に25を入れる必要がない製品がいくつかあります。
現時点では、jquery はテキスト エリア ボックスをチェックします。これは、ユーザーがそれにパーソナライゼーションを追加した場合、キット製品が必要であることを意味するため、最小数量は 25 です。
しかし、私は1つ以上にしたいdivの内容に基づいてチェックしたい製品を持っています...
そのため、現在のコードが 24 未満で入力した oppps と言わなくても、ボックスに 1 ~ 25 を入力できるはずなので、最小キット製品数量に戻します..
jsfiddle を試してみると、たとえば 3 の値を入力できないことがわかりますか? それが問題です。