直接実行している場合以外のASP.NET MVCアプリケーションで実行中の場合、現在実行中の要求のFormCollection、ViewData、ModelStateなどにアクセスする方法はありますかビューで?私はビュー内からカスタムハンドラを呼び出すことができますが、それらを渡すことなくこれらのコレクションにアクセスできるようにしたいと思います。私はWebフォームのHttpContext.Currentに似た何かを考えていますか?FormCollection、ViewData、およびModelStateへのアクセス方法
1
A
答えて
0
あなたが求めているもののほとんどにリンクすることができるViewContextオブジェクトがありますが、実際にはビュー内でこれをすべてやっている理由を自分自身に尋ねなければなりません。 (とにかくIMHO)
編集:あなたの質問が間違っているかもしれません。コントローラーにはControllerContextがあり、ビューにはViewContextがあります。 MVCのほとんどの拡張ポイントには、Requestとそのデータを取得するためのContextオブジェクトがあります。
2
、
var wrapper=new HttpContextWrapper(System.Web.HttpContext.Current);
var routeData = RouteTable.Routes.GetRouteData(wrapper);
Controller con = (Controller)ControllerBuilder.Current.GetControllerFactory().CreateController(new RequestContext(wrapper, routeData), routeData.Values["controller"].ToString());
var viewData = con.ViewData;
var modelState= con.ModelState;
var form=new FormCollection();
var controllerContext = new ControllerContext(wrapper, routeData, con);
Predicate<string> propertyFilter = propertyName => new BindAttribute().IsPropertyAllowed(propertyName);
IModelBinder binder = Binders.GetBinder(typeof(FormCollection));
ModelBindingContext bindingContext = new ModelBindingContext()
{
ModelMetadata = ModelMetadataProviders.Current.GetMetadataForType(() => form, typeof(FormCollection)),
ModelName = "form",
ModelState = modelState,
PropertyFilter = propertyFilter,
ValueProvider = ValueProviderFactories.Factories.GetValueProvider(controllerContext)
};
form = (FormCollection)binder.BindModel(controllerContext, bindingContext);
をお試しください
関連する問題
- 1. FormCollectionを直列化および逆シリアル化する方法は?
- 2. ViewData \ ModelStateを子アクションにエクスポート
- 3. SQLServerセッションモードのViewData(ModelState)をシリアル化する方法は?
- 4. ASP MVC <%:ViewData ["Key"]%>および<%= ViewData ["Key"]%>
- 5. モデル(ViewData)、UserControls/PartialsおよびGlobal変数の表示 - ベストプラクティス?
- 6. djangoデコレータのuserおよびurlパラメータへのアクセス要求
- 7. 顧客のOneDriveおよびOneDriveビジネスファイルへのアクセス
- 8. Silverlight IISなしのWCFおよびCrossDomainAccessPolicyへのアクセス
- 9. ラックベースのアプリケーションでセッションデータを保存およびアクセスする方法
- 10. TableViewDatSourceからラベル、テキストボックス、およびロウチングビューへのアクセス
- 11. ファイルストリームデータメソッドへのアクセス(T-SQLおよびマネージAPI)
- 12. は、フレームタイムラインからクラス、およびクラスからフレームタイムラインへのアクセス
- 13. テーブル、ビュー、およびファンクションへのアクセス許可
- 14. Microsoft Band SDK(PCおよびAndroid)へのアクセス
- 15. Microsoft.EntityFrameworkCore.SqlServerおよびMicrosoft.EntityFrameworkCore.Toolsへの依存を解決する方法?
- 16. は、ループおよび方法
- 17. 機能および方法
- 18. ジャワ - インターフェースおよび方法
- 19. JavaScriptのASP.NET Core ViewDataアクセス
- 20. ファイルシステム(および)のアクセス権の実装
- 21. devenvおよびOracleへのBIDSのdtsDebugHost
- 22. CodeIgniterの - コントローラおよび方法
- 23. ユーザートラッキングテーブルの設計および方法
- 24. プロトタイプおよび使用方法のJavascript
- 25. アプリケーションインターネットエクスプローラ6および8へのサポート
- 26. ValidationAttributesを手動で呼び出す方法は? (DataAnnotationsとModelState)
- 27. 角度2 - 子コンポーネントのコンテンツからのコンテンツおよびイベントへのアクセス
- 28. アクセス拒否エラー(Visual StudioおよびWatiN)
- 29. IDおよびアクセスは、VS 2015
- 30. 変数アクセス、取得、および投稿