直接実行している場合以外の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. ViewData \ ModelStateを子アクションにエクスポート
- 2. ASP MVC <%:ViewData ["Key"]%>および<%= ViewData ["Key"]%>
- 3. モデル(ViewData)、UserControls/PartialsおよびGlobal変数の表示 - ベストプラクティス?
- 4. ラックベースのアプリケーションでセッションデータを保存およびアクセスする方法
- 5. Silverlight IISなしのWCFおよびCrossDomainAccessPolicyへのアクセス
- 6. テーブル、ビュー、およびファンクションへのアクセス許可
- 7. は、フレームタイムラインからクラス、およびクラスからフレームタイムラインへのアクセス
- 8. TableViewDatSourceからラベル、テキストボックス、およびロウチングビューへのアクセス
- 9. ファイルストリームデータメソッドへのアクセス(T-SQLおよびマネージAPI)
- 10. ジャワ - インターフェースおよび方法
- 11. は、ループおよび方法
- 12. CodeIgniterの - コントローラおよび方法
- 13. ユーザートラッキングテーブルの設計および方法
- 14. アプリケーションインターネットエクスプローラ6および8へのサポート
- 15. ValidationAttributesを手動で呼び出す方法は? (DataAnnotationsとModelState)
- 16. タスク、BACKボタン、およびonSaveInstanceSate方法
- 17. XSD Key/KeyRefおよび参照方法
- 18. アクセス拒否エラー(Visual StudioおよびWatiN)
- 19. 変数アクセス、取得、および投稿
- 20. Delphi Prismにシーラス・アクセスおよび機能
- 21. HTTPおよびHTTPSアクセスここ
- 22. SharePoint、WCF、および匿名アクセス
- 23. WPFオブジェクトへのイベントと参照、およびそれらの管理方法
- 24. 大きなデータセットへのアクセスおよび/またはそれらの格納
- 25. イメージ、CSS、およびjavascriptファイルへのパスを管理する方法は?
- 26. コールバック関数から変数にアクセス(および編集)する方法は?
- 27. GSA APIへのアクセス方法
- 28. IDへのアクセス方法は?
- 29. ハンドルアトリビュートアトリビュートへのアクセス方法(ハンドルバーテンプレート
- 30. iframe history.lengthへのアクセス方法