asp.net-mvc – 显示用户内容可用操作的干净/干燥方法是什么?
使用ASP.NET MVC 3(Razor)应用程序,主要关注UGC(用户生成的内容).
我正在开发一个“Q& A”区域 – 用户可以提问,其他人可以回答,投票等. 因此,我正在尝试找出一种干净的方法来处理用户可以根据其角色和其他因素在任何给定页面上执行的可用操作. 采用“问题详细信息页面”的方案(如Stack Overflow上的此页面). 任何(已验证的)用户都可以: >投票回答问题 问题拥有者可以: >编辑 等等. 现在,我有一个QuestionViewModel,用于显示此特定视图的问题和相关答案. 我使用AutoMapper创建它. 如何根据可用的操作在页面上显示“stickies”(例如超链接)? 我目前的想法是: >我创建一个枚举:QuestionOperation(答案,编辑,禁用,投票,答案等) 这被认为是一种干净的方法 – 或者任何人都可以提出更好的方法? 请记住,我将在三个页面上重新使用此QuestionViewModel: >问题详细信息页面 因为这些操作依赖于页面/用户,所以使用AutoMapper无法实现. 解决方法
我会设置一个单独的控制器和动作,它将返回包含必要链接的局部视图.然后我会使用
Html.Action帮助器从主视图中包含它.
线条之间的东西: public class UserLinksController: Controller { // TODO: ctor DI of a repository,etc... public ActionResult Index(string questionId) { string username = User.Identity.IsAuthenticated ? User.Identity.Name : string.Empty; var roles = _repository.GetRolesForQuestion(username,questionId); var model = Mapper.Map<UserRoles,RolesViewModel>(roles); return PartialView(model); } } 在相应的部分中,您将检查视图模型并呈现必要的链接: @model RolesViewModel @if(Model.CanEdit) { @Html.ActionLink("Edit","Edit","Questions") } @if(Model.CanDelete) { @Html.ActionLink("Delete","Delete","Questions") } ... 现在,在主视图中的某处,只需使用Html.Action方法包含此操作: @Html.Action("Index","UserLinks",new { questionId = Model.QuestionId }) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 企业库无法在asp.net应用程序中查找配置源文件
- asp.net-mvc – 使用Fluent验证进行不显眼的自定义/条件验证
- asp.net – 如何避免UpdatePanel在AutoPostBack上滚动?
- asp.net – 从承载令牌(Web API)获取自定义声明值
- js触发asp.net的Button的Onclick事件应用
- asp.net – 动态加载控件 – 如何访问Page_Init中的值
- asp.net mvc 3 c#post变量数组
- ASP.NET MVC 4 – 应用程序不接受新连接字符串 – AppHarbo
- asp.net-mvc – 如何在ASP.net MVC 4 RouteConfig.cs中使用
- asp.net-mvc-3 – 如何传递Request.QueryString到Url.Actio
- asp.net-mvc – 如何将第二个应用程序添加到MVC网
- 将ASP.Net MVC开发和ASP.net Web表单开发混合在同
- .NET Core多平台开发体验[2]: Mac OS X
- ASP.Net,C#.Net和VB.Net之间的区别?
- 强制CamelCase在ASP.NET WebAPI每个控制器
- asp.net Web项目中使用Log4Net进行错误日志记录
- asp.net-mvc-3 – 是否可以设置TextBoxFor生成的
- asp.net-mvc-3 – 用于在ASP.NET MVC3中使用Grid
- 快速开发之代码生成器(asp.net mvc4 + easyui +
- asp.net – 如何使用javascript控制系统卷