在ASP.NET MVC中检索当前视图名称?
发布时间:2020-12-15 19:29:15 所属栏目:asp.Net 来源:网络整理
导读:我有一个局部视图(控制),用于几个视图页面,我需要传递当前视图的名称回到控制器 – 所以如果有例如。验证错误,我可以重新绘制原来的视图。 一种解决方法是(在控制器方法中) var viewName = "Details"; // or whateverViewData["viewName"] = viewName;ret
我有一个局部视图(控制),用于几个视图页面,我需要传递当前视图的名称回到控制器 – 所以如果有例如。验证错误,我可以重新绘制原来的视图。
一种解决方法是(在控制器方法中) var viewName = "Details"; // or whatever ViewData["viewName"] = viewName; return(View(viewName,customer)); 然后在部分本身,渲染它 <input type="hidden" name="viewName" value="<%=Html.Encode(ViewData["viewName"])%>" /> 问题是 – 是否有一些属性或语法我可以使用直接检索这个而不是设置它从控制器?我试过明显: <input type="hidden" name="viewName" value="<%=Html.Encode(this.Name)%>" /> 但这不工作。我在这里失踪了什么? 谢谢。 解决方法
如果你不介意你的代码绑定到你使用的特定视图引擎,你可以看看ViewContext.View属性,并将其转换为WebFormView
var viewPath = ((WebFormView)ViewContext.View).ViewPath; 我相信会得到你的视图名称在结束。 编辑:破解是绝对地点;为了使事情有点整洁我已经包装了逻辑上一个扩展方法,如: public static class IViewExtensions { public static string GetWebFormViewName(this IView view) { if (view is WebFormView) { string viewUrl = ((WebFormView)view).ViewPath; string viewFileName = viewUrl.Substring(viewUrl.LastIndexOf('/')); string viewFileNameWithoutExtension = Path.GetFileNameWithoutExtension(viewFileName); return (viewFileNameWithoutExtension); } else { throw (new InvalidOperationException("This view is not a WebFormView")); } } } 这似乎做我完全正确的。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-3 – 使用razor更改验证错误输入的CSS类
- 单声道是asp.net的可行替代方案吗?
- asp.net-mvc – 如何在asp.net C#中从http重定向到https并将
- asp.net-mvc-4 – 在IIS 7.5中注册.NET Framework 4.5
- asp.net-mvc – ASP.NET MVC5/IIS Express无法调试 – 代码
- 如何获取ASP.NET应用程序的最后开始时间?
- asp.net – 在某些情况下如何覆盖/更改FormsAuthentication
- asp.net-mvc – ASP.NET MVC:默认页面上的AuthorizeAttrib
- 在ASP.NET MVC中使用MySQL的AccountController
- ASP.NET 4.0删除控件后菜单控件的渲染问题RenderingCompati
推荐文章
站长推荐
- asp.net-mvc – 使用Asp.Net MVC的Ajax?
- asp.net – 命名空间“Microsoft”错误中不存在类
- asp.net-web-api – ASP.NET WEB API 2 OWIN身份
- asp.net-mvc – 如何为最小和最大数量的复选框创
- Asp.Net Core基于JWT认证的数据接口网关Demo
- asp.net-mvc – 如何在ASP.NET MVC视图中对HTML列
- asp.net-mvc-3 – 使用Quartz.Net的MVC 3
- asp.net-mvc – ASP.NET MVC 3从同一表单保存和编
- asp.net-mvc-3 – 拒绝访问剃刀视图
- asp.net-web-api – 如何在Azure Service Fabric
热点阅读