asp.net-mvc – 强大的html帮助程序,具有不同的get和post模型
发布时间:2020-12-16 04:16:12 所属栏目:asp.Net 来源:网络整理
导读:如果Get Action返回带有“Car”模型的View.视图显示来自对象的信息,并将输入发送到表单内的另一个操作,该操作采用“付款”类型的对象 视图上的模型是Car类型,并为我提供了强大的html支持和一些其他功能,如displaytext.但是对于发布我没有像TextBox那样的Html
如果Get Action返回带有“Car”模型的View.视图显示来自对象的信息,并将输入发送到表单内的另一个操作,该操作采用“付款”类型的对象
视图上的模型是Car类型,并为我提供了强大的html支持和一些其他功能,如displaytext.但是对于发布我没有像TextBox那样的Htmlhelper支持(x => x.amount我需要使它像@ Html.TextBox(“Amount”……) 解决方法
你可以这样做:
@{ var paymentHtml = Html.HtmlHelperFor<Payment>(); } @paymentHtml.EditorFor(p => p.Amount) 使用此扩展方法: public static class HtmlHelperFactoryExtensions { public static HtmlHelper<TModel> HtmlHelperFor<TModel>(this HtmlHelper htmlHelper) { return HtmlHelperFor(htmlHelper,default(TModel)); } public static HtmlHelper<TModel> HtmlHelperFor<TModel>(this HtmlHelper htmlHelper,TModel model) { return HtmlHelperFor(htmlHelper,model,null); } public static HtmlHelper<TModel> HtmlHelperFor<TModel>(this HtmlHelper htmlHelper,TModel model,string htmlFieldPrefix) { var viewDataContainer = CreateViewDataContainer(htmlHelper.ViewData,model); TemplateInfo templateInfo = viewDataContainer.ViewData.TemplateInfo; if (!String.IsNullOrEmpty(htmlFieldPrefix)) templateInfo.HtmlFieldPrefix = templateInfo.GetFullHtmlFieldName(htmlFieldPrefix); ViewContext viewContext = htmlHelper.ViewContext; ViewContext newViewContext = new ViewContext(viewContext.Controller.ControllerContext,viewContext.View,viewDataContainer.ViewData,viewContext.TempData,viewContext.Writer); return new HtmlHelper<TModel>(newViewContext,viewDataContainer,htmlHelper.RouteCollection); } static IViewDataContainer CreateViewDataContainer(ViewDataDictionary viewData,object model) { var newViewData = new ViewDataDictionary(viewData) { Model = model }; newViewData.TemplateInfo = new TemplateInfo { HtmlFieldPrefix = newViewData.TemplateInfo.HtmlFieldPrefix }; return new ViewDataContainer { ViewData = newViewData }; } class ViewDataContainer : IViewDataContainer { public ViewDataDictionary ViewData { get; set; } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 发布ASP.NET应用程序时,是否应该将构建类型更改为Visual St
- ASP.NET -- WebForm -- HttpResponse 类的方法和属性
- asp.net-mvc – 如何降级Visual Studio 2012中的Entity Fra
- asp.net-mvc – 带有Base64编码的JsonResult
- asp.net-mvc – 使用ui-router的.NET MVC和Angular
- asp.net – 从磁条输入信号卡
- asp.net-mvc-3 – 如何在ASP .NET MVC 3中验证与另一个值相
- asp.net – 在webapi中实现PATCH
- asp.net-mvc – 如何在ActionFilterAttribute ASP MVC 5中为
- asp.net-core – 从ASP.NET CORE中的appsettings.json文件读