asp.net-mvc-3 - 为什么页面在 Razor 下不可用

标签 asp.net-mvc-3 razor

我将 aspx View 移动到 razor。有些事情不起作用(空引用):

Page.RouteData.Values["IdeaType"]
Page.User.IsInRole("Admin")

我必须更改为:

ViewContext.RequestContext.RouteData.Values["IdeaType"]
ViewContext.RequestContext.HttpContext.User.IsInRole("Admin")
为什么? 需要导入一些东西吗?

最佳答案

Razor 的 Page 属性返回一个页面状态包,可以在布局页面、内容页面和部分 View 之间传递数据。
WebForm 的 Page 属性返回您的 Page 实例(它继承自 Control 类)。

它们不一样。

一般来说,WebForms 属性和 Razor 属性有很大不同。

请注意,Razor 页面还有一个 User 属性;你可以只写User.IsInRole(...)

关于asp.net-mvc-3 - 为什么页面在 Razor 下不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7474558/

相关文章:

asp.net-mvc-3 - Asp.Net MVC3 Razor - 子项目列表未从编辑器发回

asp.net-mvc-3 - 我可以有使用两个模型的局部 View 吗?

asp.net-mvc-3 - 仅在modelstate错误时显示div

asp.net-mvc - EditorFor an int 选择字符串模板

asp.net-mvc-3 - 在 MVC3 razor View 中渲染 MSChart

c# - VS2015 在 RazorEngine 模板中看不到 Linq

c# - devexpress元素的样式

asp.net-mvc-3 - 如何使用 Ninject 注入(inject)一些通用的 asp.net http 处理程序?

templates - 未呈现基类模板的嵌套@ Html.DisplayFor(model => baseClass, "BaseClass")

asp.net-mvc - 如何在 Razor 中强制执行代码块