在ASP.NET MVC 4上从aspx执行C#代码

吉姆·布鲁姆(Jim Blum)

我有一个ASP.NET MVC4项目。

我有不同类型的用户,例如儿童,青少年和成人,所有这些用户均属于用户角色“用户”。这些帐户中的每一个都应在登录时看到不同的菜单。

因此,我认为检查登录用户是否为孩子是一个好主意,例如在Site.Master(用aspx编写)中显示孩子的菜单。

但是,我很难做到这一点。我下面的代码Parser Error Message: The server block is not well formed.在第二行(<%@ using SchoolProgressProject.Controllers %>收到一条消息我的代码如下所示。

<%@ Import Namespace="SchoolProgressProject" %>  
                <%@ using SchoolProgressProject.Controllers; %>  
                <%@ using SchoolProgressProject.Models; %>  
                <% WebIntegrationRestService service= new WebIntegrationRestService();//This is to contact the Database%>
             <% UserType type = null;%>
            <%if (User.Identity.IsAuthenticated)%>
            <%{%>
                  <% UserType type = service.GetUserByUsername(User.Identity.Name).UserType;%>
            <%}%>

你知道我怎么解决吗?此外,您知道更简单或更清晰的方法吗?

西蒙·哈尔西(Simon Halsey)

有两点。

您不能using像在c#代码文件中那样在视图页面中使用它们以不同的方式工作。import page指令执行等效操作。

不需要<%像之前那样在每一行上都包含多行代码一个A代码块以aa开头<%,有多行代码,每行以;结尾,最后是a%>

最后也是最重要的是,请勿在视图中执行此操作。您的视图中不应包含业务逻辑。获取控制器中的用户角色,然后将结果传递到视图,或基于该值返回不同的视图。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章