當在ASP.NET MVC應用程序中運行而不是直接工作時,是否有任何方式可以訪問當前正在運行的請求的FormCollection,ViewData,ModelState等在視圖?我希望能夠從視圖中調用一些自定義處理程序,但無需傳遞它們即可訪問這些集合。我想在webforms中類似於HttpContext.Current?如何訪問FormCollection,ViewData和ModelState
1
A
回答
0
有一個ViewContext對象,可以讓你鏈接到你所要求的大部分內容,但你必須問自己爲什麼你要在視圖中做所有這些。 (恕我直言,無論如何)
編輯:我可能誤讀你的問題。控制器中有一個ControllerContext,視圖中有一個ViewContext。 MVC中的大多數可擴展點都有某種Context對象,可以讓您獲取Request及其數據。
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. JavaScript中訪問ViewData?
- 2. 將ViewData \ ModelState導出爲子操作
- 3. 在JavaScript中訪問ModelState
- 4. ASP MVC訪問ViewData數組?
- 5. 的NullReferenceException訪問的ViewData時
- 6. 訪問ViewData使用JQuery
- 7. formcollection如何訪問html表單關聯數組
- 8. 在PartialView中訪問ViewData模型
- 9. MVC 4 - 建立一個訪問的ViewData
- 10. 訪問視圖中的viewdata對象
- 11. Java腳本訪問ASP.net MVC ViewData
- 12. 無法在ActionFilterAttribute中訪問ViewData OnActionExecutingAsync
- 13. 如何在我的視圖中訪問ViewData屬性?
- 14. 如何從jQuery的訪問.NET MVC的ViewData直接
- 15. 如何更新ModelState?
- 16. 如何手動調用ValidationAttributes? (DataAnnotations和ModelState)
- 17. 如何從ViewData的
- 18. 如何從ViewData的
- 19. EditorTemplates和ViewData
- 20. x.BeginForm()和ViewData
- 21. 如何增加Viewdata和Tempdata的時間?
- 22. AllowHtml,HttpRequestValidationException和ModelState中
- 23. ModelState和對話框
- 24. 在不同的控制器上檢查發佈的FormCollection中的ModelState錯誤
- 25. C#MVC的.Net的FormCollection:如何使用的FormCollection
- 26. 如何重置ModelState值?
- 27. 如何在不使用隱藏字段的情況下從JQuery訪問viewdata?
- 28. 如何訪問存儲在viewdata中的數據庫記錄的列?
- 29. 如何使用ViewBag訪問包含特殊字符的ViewData項目?
- 30. 的DropDownList和ViewData的