問題タブ [asp.net-mvc-5.1]
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-mvc - MVC5 属性ルート、オプションのパラメータなしでルートに null を発行
私はコントローラーに持っています:
[ルートプレフィックス("")]
ルートを使用したアクション:
これらの URL をブラウザに入力すると、これが機能します。
ローカルホスト/やるべきこと ローカルホスト/
やるべきこと/何か
ローカルホスト/やるべきこと/何か/何か
しかし、これらはすべて null を返します。
これらは正しい URL を返します。
Url.Action("ThingsToDo", "ControllerName", new { filter1 = "something", filter2 = "something" })
Url.Action(MVC.ControllerName.ThingsToDo("something", "something"))
オプションのパラメーターが必要ない場合に、URL を正しく生成する方法についてのヘルプをいただければ幸いです。
asp.net-mvc - RouteCollectionRoute で正しいルートを見つける方法は?
ASP MVC ルートをテストしています。ASP MVC 5.1 の属性ルートに問題があります
次のようなコントローラーがある場合:
次に、特定のリクエストに一致するルートをテストするために、 を呼び出しますroutes.GetRouteData
。System.Web.Routing.RouteData
ルートと、一致するコントローラーとアクションを示す値を含むを取得します。
問題は、このルートがRouteCollectionRouteのインスタンスになり
、この内部クラスがこれら 2 つのアクションへのルート グループのラッパーになっていることです。コントローラは にありますRouteData.values
が、アクションはありません。これらの含まれているルートは で取得できますrouteData.Values["MS_DirectRouteMatches"] as IList<RouteData>
。
上記の例では、2 つのアクション メソッドに対して、リストに 2 つのルートがあります。一致したルートのアクション メソッド名を読み取ることができるように、含まれているルートのどれが実際に一致するかを知る必要があります。このルートを解決するにはどうすればよいですか?
まったくないというデザインの選択に少し困惑していRouteCollectionRoute
ます。ルーティング時には、ルート コレクションがあり、次に を呼び出して URL のルートを解決しますGetRouteData
。これでルートは 1 つになりました。しかし、そうであれば、それRouteCollectionRoute
はまだルートのコレクションであり、ルートの解決はまだ終わっていません。RouteCollectionRoute を持つことで何が得られますか? ルート解決は 2 段階のプロセスになりましたか? それとも再帰的なプロセスですか?
ASP MVC の内部を調べていることはわかっていますが、この種のテスト容易性を念頭に置いて設計されていないため、これが唯一の方法です。いくつかの内部クラスやメソッドを公開するなどの単純なことでさえ、大いに役立ちました!
asp.net-mvc - MVC 5で画像をアップロードしている間、Request.Files.Countは常に0です
いくつかの文字列フィールドと画像を持つモデルに Post コントローラーがあります。MVC4 ではまったく同じコードが機能しますが、MVC 5 では Request.Files.Count は常に 0 です。
私のモデルには、HttpPostedFileBase ではなく画像用の byte[] があります
私の見解:
data_ajax = "false" を省略しようとしましたが、役に立ちません。
私のポストコントローラーは次のとおりです。
デバッガーで、Request.Files.Count が常にゼロであることがわかります。理由がわかりません。ビューとコントローラーの両方のコードを、正常に動作する別の MVC4 プロジェクトからコピーしました。
IE Developer ウィンドウで、フォームの本文が空であることがわかります。
asp.net-identity - ユーザー名パスワードハッシュ設定
UserName をカスタムの Firstname+ Lastname プロパティとして設定しようとしました。それはそれをOKに設定します。しかし、ログインしようとすると失敗します。これは、パスワードが電子メールをソルトとして使用してハッシュされているためですか? これをオーバーライドして、ログイン時にメールをハッシュとして引き続き使用し、ユーザー名をユーザー名として使用する方法はありますか?
Identity 2.0.0 beta1 を使用しています
解決しました。名と姓のフィールドの間に美的目的のためにスペースを残しました。このスペースを削除すると、問題が解決しました。
ありがとう
asp.net-mvc - MVC5 アプリは、セキュリティで保護されたアクションを呼び出すときに login.aspx にリダイレクトします
VS 2013 で新しい ASP.NET MVC 5.1 Web アプリを作成しました。ローカルの IIS Express では、すべて正常に動作しています。1 つのコントローラーが Authorize-Attribute で装飾されています。この前にログインせずにこのコントローラで保護されたアクションを開くと、ログイン ページ (/Account/Login) に正しくリダイレクトされました。しかし、私の生産的な IIS 7 (Windows Server 2008) では、サーバーは私を login.aspx にリダイレクトします。
これは、OWIN ミドルウェアを使用していて、古い IIS 7.0 では動作しない場合に発生する可能性がありますか? bin dir には、私のプロジェクトのすべての OWIN-dll があります。
Google などの外部ログイン プロバイダーを使用している間、リダイレクト プロセスにも問題があります。上記と同じ手順です。:-(
誰か私にヒントがありますか?
ありがとう。アンドレアス
c# - Html.EditorFor は MVC5.1 のクラス以上をサポートしていますか?
エディター テンプレートを変更せずに、他の HTML 属性をHtml.EditorFor
ヘルパー エクステンションに渡すことはできますか?
この例は、渡されるクラスを示しています。
多くの潜在的なシナリオがありますが、入力をdata-myvar="value"
. これを試すと、コンパイラ エラーが発生しinvalid anonymous type declaratory
ます。
さらに、可能であれば、クラスに加えてこれを渡すことはできますか? つまり、の配列を渡しhtmlattributes
ます。リリース ノート以外のドキュメントを見つけるのに苦労しています。
asp.net-mvc - アプリケーションの初回実行時の ValidateAntiForgeryToken エラー
ローカル開発サーバーから共有ホスティング サーバーにアプリケーションを公開すると、誰かが初めてログインしたときにエラーが発生します。
マシンキーを追加しようとしましたが、違いはないようです。ログインを試みる前に、ログイン ページを更新しています。これと同じ問題のようです
偽造防止 Cookie トークンとフォーム フィールド トークンが MVC 4 で一致しない
しかし、マシンキーはそれを解決しませんでした。私のアプリケーションは ASP.Net 4.5.1 MVC5.1 です
mvcsitemapprovider - MvcSiteMapProvider で奇妙なエラーが発生しました。2つのルートノードを見つける方法
デコレータの方法だけで、xml なしで MvcSiteMapNode を使用しています。この投稿で言ったように
空のルート ノードを持つノードが 1 つしかないと確信しています。また、このエラーが発生する場合を除いて、常に機能します。
親キーなしで宣言されたノードが複数あります。親キーは、SiteMap の 1 つのノードを除くすべてのノードに設定する必要があります。親キーのないノードはルート ノードと見なされます。XML でノードを定義する場合、XML ファイルにはルート ノードが含まれている必要があります。
MvcSiteMapProvider_EnableSiteMapFile 設定を "false" に設定することで、XML 構成を無効にすることができます。外部 DI 構成の場合、MvcSiteMapProvider DI モジュールから XmlSiteMapNodeProvider を削除することにより、XML 解析を無効にすることができます。
または、MvcSiteMapProvider_IncludeRootNodeFromSiteMapFile 設定を "false" に設定して、XML ファイルからルート ノードを除外し、他のすべてのノードを含めることができます。外部 DI 構成の場合、この設定は XmlSiteMapNodeProvider のコンストラクターにあります。
SiteMapCacheKey: 'sitemap://localhost/'
あいまいなルート ノード:
親キー: '' | コントローラー: 'ホーム' | アクション: 'インデックス' | エリア: 「管理者」 | URL: '/管理者' | キー: 'ルート' | ソース: 'MvcSiteMapNodeAttribute'
親キー: '' | コントローラー: 'ホーム' | アクション: 'インデックス' | エリア: 「管理者」 | URL: '/管理者' | キー: 'ルート' | ソース: 'MvcSiteMapNodeAttribute'
私のApp.Settings
サイトマップが初期化される方法と関係があると思います。クロススレッド操作に対して脆弱である可能性があります。二重に初期化される可能性があります。
これについて何かアドバイスはありますか?
前もって感謝します。