タグ付けされた質問 「asp.net-mvc」

ASP.NET MVCフレームワークは、Webアプリケーション向けに調整され、ASP.NETテクノロジーの基盤に基づいて構築されたモデルビューコントローラー(MVC)パターンのバージョンを実装するオープンソースのWebアプリケーションフレームワークおよびツールです。

6
「System.Net.Http.HttpContent」には、「ReadAsAsync」の定義と拡張メソッドが含まれていません
作成したWeb APIを使用するコンソールアプリを作成しました。コンソールアプリのコードはコンパイルされません。それは私にコンパイルエラーを与えます: 'System.Net.Http.HttpContent' does not contain a definition for 'ReadAsAsync' and no extension method 'ReadAsAsync' accepting a first argument of type 'System.Net.Http.HttpContent' could be found (are you missing a using directive or an assembly reference?) このエラーが発生するテストメソッドを次に示します。 static IEnumerable<Foo> GetAllFoos() { using (HttpClient client = new HttpClient()) { client.DefaultRequestHeaders.Add("appkey", "myapp_key"); var …

5
複数の役割を持つ属性を承認する
一度に複数のロールの承認をコントローラーに追加したいと思います。 通常は次のようになります。 [Authorize(Roles = "RoleA,RoleB,RoleC")] public async Task<ActionResult> Index() { } しかし、ロールはある時点で変更または拡張される可能性があるため、constに保存しました。 public const RoleA = "RoleA"; public const RoleB = "RoleB"; public const RoleC = "RoleC"; 文字列はコンパイル時に認識されている必要があるため、これはできません。 [Authorize(Roles = string.join(",",RoleA,RoleB,RoleC)] public async Task<ActionResult> Index() { } 問題を回避する方法はありますか? 私は単に「RoleA、RoleB、RoleC」を含むconstを書くことができますが、私は魔法の文字列が嫌いで、これは魔法の文字列です。ロールの名前を変更し、結合された文字列を変更するのを忘れると、大変なことになります。 MVC5を使用しています。ASP.NETのIDとロールはコンパイル時に認識されます。

7
'AuthController'をアクティブ化しようとしているときに、タイプ 'Microsoft.AspNetCore.Identity.UserManager`のサービスを解決できません
LoginControllerでこのエラーが発生します。 InvalidOperationException:「Automobile.Server.Controllers.AuthController」をアクティブ化しようとしているときに、タイプ「Microsoft.AspNetCore.Identity.UserManager`1 [Automobile.Models.Account]」のサービスを解決できません。 これがAuthControllerコンストラクターです: private SignInManager<Automobile.Models.Account> _signManager; private UserManager<Automobile.Models.Account> _userManager; public AuthController(UserManager<Models.Account> userManager, SignInManager<Automobile.Models.Account> signManager) { this._userManager = userManager; this._signManager = signManager; } これがstartup.csのConfigureServicesです。 public void ConfigureServices(IServiceCollection services) { // Add framework services. services.AddApplicationInsightsTelemetry(Configuration); services.Configure<AppConfig>(Configuration.GetSection("AppSettings")); //var provider = HttpContext.ApplicationServices; //var someService = provider.GetService(typeof(ISomeService)); services.AddDbContext<Providers.Database.EFProvider.DataContext>(options => options .UseSqlServer(Configuration.GetConnectionString("DefaultConnection"), b => b.MigrationsAssembly("Automobile.Server") …

8
コントローラーの基本クラスを使用せずに、すべてのビューのViewBagプロパティを設定する方法は?
以前は、すべてのコントローラーに共通の基本コントローラーを継承させることにより、現在のユーザーなどの共通のプロパティをグローバルな方法でViewData / ViewBagに固定していました。 これにより、ベースコントローラーでIoCを使用できるようになり、そのようなデータ用に共有されたグローバルに到達するだけではなくなりました。 この種類のコードをMVCパイプラインに挿入する別の方法があるかどうか疑問に思いますか?

12
プロジェクトで同じ名前の複数のコントローラーに問題がある
ASP.NET MVC 3プロジェクトで次のエラーが発生しています。 「ホーム」という名前のコントローラーに一致する複数のタイプが見つかりました。これは、このリクエストを処理するルート( 'Home / {action} / {id}')が、リクエストに一致するコントローラーを検索するための名前空間を指定していない場合に発生する可能性があります。その場合は、「namespaces」パラメーターを受け取る「MapRoute」メソッドのオーバーロードを呼び出して、このルートを登録します。 「ホーム」のリクエストにより、次の一致するコントローラーが見つかりました:MyCompany.MyProject.WebMvc.Controllers.HomeController MyCompany.MyProject.WebMvc.Areas.Company.Controllers.HomeController デフォルトのコントローラーフォルダーにHomeControllerがあり、クラス名はMyCompany.MyProject.WebMvc.Controllers.HomeControllerです。 私のglobal.asaxのRegisterRoutesメソッドは次のようになります。 public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults ); } 次に、Companyという領域があり、その領域の既定のコントローラーフォルダーにHomeControllerがあり、クラス名はMyCompany.MyProject.WebMvc.Areas.Company.Controllers.HomeControllerです。 CompanyAreaRegistrationファイルのRegisterAreaメソッドは次のようになります。 public …

8
ASP.NET MVC-TempData-良いまたは悪い習慣
AcceptVerbsASP.NET MVCのフォームエントリを処理するために、Scott Guのプレビュー5ブログの投稿で詳述されている方法を使用しています。 ユーザーはGETを介して空のフォームを取得します ユーザーはPOSTを介して同じアクションに入力されたフォームを投稿します アクションはデータを検証し、適切なアクションを実行して、新しいビューにリダイレクトします だから私は使う必要はありませんTempData。とは言っても、このプロセスに「確認」ステップを追加する必要があるため、を使用する必要があるようですTempData。 何らかの理由で、私は使用を嫌っていますTempData-それは周りに設計されるべきものだということです。 これはまったく正当な懸念ですか、それとも私はそれを補っていますか?

4
ASP.NET MVCで動的ログインURLにリダイレクトする方法
クライアントのページをホストするマルチテナントWebサイトを作成しています。URLの最初のセグメントは、次のURLルーティングスキーマを使用してGlobal.asaxで定義された、クライアントを識別する文字列になります。 "{client}/{controller}/{action}/{id}" これは、/ foo / Home / IndexなどのURLで正常に機能します。 しかし、[Authorize]属性を使用すると、同じマッピングスキームを使用するログインページにリダイレクトしたいと思います。したがって、クライアントがfooの場合、ログインページは、web.configで定義された固定の/ Account / Loginリダイレクトではなく、/ foo / Account / Loginになります。 MVCはHttpUnauthorizedResultを使用して401無許可ステータスを返します。これにより、ASP.NETがweb.configで定義されたページにリダイレクトされると思います。 では、ASP.NETログインリダイレクトの動作をオーバーライドする方法を知っている人はいますか?または、カスタム認証属性を作成してMVCでリダイレクトする方が良いでしょうか? 編集-回答: .Netソースを少し調べた後、カスタム認証属性が最良のソリューションであると判断しました。 public class ClientAuthorizeAttribute: AuthorizeAttribute { public override void OnAuthorization( AuthorizationContext filterContext ) { base.OnAuthorization( filterContext ); if (filterContext.Cancel && filterContext.Result is HttpUnauthorizedResult ) { filterContext.Result = new RedirectToRouteResult( new …

2
BundleConfig.csをプロジェクトに追加するにはどうすればよいですか?
私はASP.Net MVCプロジェクトを持っていると私はバンドルを実装したいが、私はインターネット上で見つけることができるすべてが開くように私に指示BundleConfig.csでApp_Start-しかし、このファイルは私のプロジェクトに存在しません。そのフォルダにはFilterConfig、RouteConfigとの3つのファイルしかありませんWebApiConfig。 ソリューションを作成したときにバンドル構成が生成されませんでした(IIRCは、最初は空のASP.NET MVCプロジェクトでした)。 これは本当に簡単なことのようですが、私にはわかりません。 PSよく読んでいない人に明確にするために、これはゼロから作成されたMVC4 / .Net 4.5アプリ用です。解決策を以下に示します。

6
ビュー固有のJavaScriptファイルをASP.NET MVCアプリケーションのどこに配置しますか?
ビュー固有のJavaScriptファイルをASP.NET MVCアプリケーションに配置するのに最適な場所(どのフォルダーなど)ですか? 私のプロジェクトを整理しておくために、ビューの.aspxファイルと並べて配置できるようにしたいのですが、〜/ Viewsを公開せずにそれらを参照する方法を見つけられませんでした/ Action /フォルダー構造。そのフォルダ構造の詳細を漏らすのは本当に悪いことですか? 代わりに、〜/ Scriptsまたは〜/ Contentフォルダーに配置することもできますが、ファイル名の競合を心配する必要があるため、少し気になります。それが「正しいこと」だとしたら、私は乗り越えられる苛立ちです。

6
glyphicons-halflings-regular.woff2が見つからないというエラーを取り除く方法
ASP.NET MVC4 Bootstrap 3アプリケーションは、Microsoft Visual Studio Express 2013 for Web IDEから実行されています。 Chromeコンソールに常にエラーが表示される http://localhost:52216/admin/fonts/glyphicons-halflings-regular.woff2 Failed to load resource: the server responded with a status of 404 (Not Found) このファイルは、ソリューションエクスプローラーのfontsディレクトリにあります。ビルドアクションは[コンテンツ]に設定され、[出力ディレクトリにコピー]は[他のフォントファイルのようにコピーしない]です。NuGetを使用して、Bootstrap 3がソリューションに追加されます。このエラーが発生しないようにこれを修正するにはどうすればよいですか?アプリケーションはGlyphiconおよびFontAwesomeアイコンを適切に表示します。このエラーは、常にアプリケーションの起動時に発生します。

4
RazorでのHtml.RenderPartial()構文
これは、部分的なビューのレンダリング結果を文字列で返すため、機能します。 @Html.Partial("Path/to/my/partial/view") しかし、私は使用することを好みRenderPartial、それを書く必要があるようです: @{Html.RenderPartial("Path/to/my/partial/view");} の代わりに: @Html.RenderPartial("Path/to/my/partial/view"); それを機能させるために。エラーメッセージ: Compiler Error Message: CS1502: The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments @{...}1回のメソッド呼び出しだけでコードブロックを開く代わりに、より良い方法があるかどうか。

7
ビューはASP.NET MVCに存在しますか?
ビューをレンダリングする前に、コントローラ内から特定のビュー名が存在するかどうかを判断することはできますか? レンダリングするビューの名前を動的に決定する必要があります。その名前のビューが存在する場合、そのビューをレンダリングする必要があります。カスタム名のビューがない場合は、デフォルトのビューをレンダリングする必要があります。 コントローラー内で次のコードのようなものを実行したいと思います。 public ActionResult Index() { var name = SomeMethodToGetViewName(); // The 'ViewExists' method is what I've been unable to find. if (ViewExists(name)) { retun View(name); } else { return View(); } }


21
BuildTasks.Cscタスクをアセンブリから読み込めませんでしたか?
このあたりでこのような質問をするのは罪悪感を覚えますが、私は途方に暮れていて、助けてくれればありがたいです。 概念実証のようなWebアプリケーションが1台のPCに構築され、別の場所にある別のPCにダウンロードするためにリポジトリに置かれました。当初、Azureがチェックイン時に自動的にビルドおよび公開する自動ビルド機能がセットアップされていましたが、それは削除されました。片側に除外された変更の大部分が含まれるまで、物事は両端で機能していました。今、私は次のエラーを見ています: "Microsoft.CodeAnalysis.BuildTasks.Csc"タスクを アセンブリから読み込めませんでした... \ packages \ Microsoft.Net.Compilers.1.0.0 \ build .. \ tools \ Microsoft.Build.Tasks.CodeAnalysis.dll。ファイルまたはアセンブリ 'file:/// ... \ packages \ Microsoft.Net.Compilers.1.0.0 \ tools \ Microsoft.Build.Tasks.CodeAnalysis.dll'またはその依存関係の1つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。宣言が正しいこと、アセンブリとそのすべての依存関係が利用可能であること、およびタスクにMicrosoft.Build.Framework.ITaskを実装するパブリッククラスが含まれていることを確認します。 誰が問題を探し始めるかについて何か提案はありますか?

6
ASP.NET MVCかみそり連結
Razorビューエンジンを使用して、次のようなHTMLリストをレンダリングしようとしています。 <ul> <li id="item_1">Item 1</li> <li id="item_2">Item 2</li> </ul> このリストをレンダリングするために使用しようとしているコードは次のとおりです。 <ul> @foreach (var item in Model.TheItems) { <li id="item_@item.TheItemId">Item @item.TheItemId</li> } </ul> パーサーが窒息しているのは、id属性のアンダースコアの右側にあるものはすべてプレーンテキストであり、解析すべきではないと考えているためです。パーサーにTheItemIdをレンダリングするように指示する方法がわかりません。 私はしたくないのですが、item_接頭辞を含むモデルオブジェクトのプロパティです。 また、JQuery Sortableと、この構文でid属性をフォーマットする必要があるserialize関数でリストを使用しているため、この構文を維持する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.