尽管我已经在这里待了一段时间,但这是我关于SO的第一个问题,所以请多多包涵。我正在使用ASP.NETMVC3并且我想创建一个自定义的Principal这样我就可以存储比标准更多的关于当前用户的信息因此不必经常去数据库。这是我追求的相当标准的东西。我们先说电子邮件地址和用户ID。我决定将对象存储在缓存中,因为我知道不建议将其存储在session中。我也不想一直转换User对象,所以我想覆盖Controller中的User对象。所以我可以直接访问User.UserId并得到一些保证。所以我创建了一个这样的自定义主体:publicclassMyPrincipal:IPrincipal{pub
现有项目的Controller继承自:Controller:RouteTable.Routes.MapRoutewith"{controller}/{action}/{id}"。ApiController:GlobalConfiguration.Configure并在回调MapRoute中使用"api/{controller}/{id}"。一切正常,但我需要为这两种类型的Controller中的操作方法生成URL。鉴于:继承自其中任何一个的Controller的名称或类型,以及一个Action方法名那么从网站端,如何为WebAPI端生成正确的URL?我现在正在使用反射来获取操作和Con
所以我开始了一个ASP.NETMVC项目,虽然整体体验不错,但我对我的Controller变得一团糟感到不太满意。我在网上四处看看(CodeCampServer等),它们似乎都遇到了同样的问题,其中Controller方法非常一致地违反了SRP(单一责任原则)——例如,如果请求是,Controller方法只呈现ViewGET但如果是POST则更新model。现在我有Controller方法负责整个应用程序中的多个逻辑路由-假设它检查在表单上单击了哪个button并相应地执行操作。我可以使用JavaScript将每个按钮点击重定向到不同的表单操作,但也感觉不对...另一个大问题是魔法字符
我正在使用旧版MainMenucontrol(withMenuItems)controlinanapplication,andwouldliketoimplementzoominandzoomoutmenuitems(withControl++和Control+-键盘快捷键)。(请注意,我使用的是MainMenu而不是MenuStrip)。MenuItem确实有一个Shortcut属性,类型Shortcut,但它没有CtrlPlus选项。我决定看看如何Shortcutwasimplementedinthereferencesource,看起来每个枚举值只是几个Keys的组合枚举值(例如
在给定System.Web.Routing.RouteData的情况下,如何获取将要调用的Controller操作(方法)和Controller类型?我的场景是这样的-我希望能够在OnActionExecuting方法中执行(或不执行)某个操作的某些操作。但是,我经常想知道的不是当前操作,而是被调用的“根”操作;我的意思是我可能有一个名为“登录”的View,这是我的登录页面。此View可能包括另一个局部View“LeftNav”。当为LeftNav调用OnActionExecuting时,我希望能够确定它确实是为Login的“根”aciton调用的。我意识到通过调用RouteTable
是否可以在Controller中使用泛型方法?我在谈论这样的事情:[HttpPost]publicvoidDoSomething([FromBody]SomeGenericClasssomeGenericObject){SomePrivateMethod(someGenericObject);}我实际上已经尝试了上面的方法(尽管所有的名称都不同)并发布到Api//DoSomething使用someGenericObject的实例在请求正文中,它没有工作(即它没有到达Controller)。我猜测WebAPI路由无法解析泛型方法,因为它们可能会导致下面不同类型的不同方法。但这正是我的想法
所以我的问题如下(MVC5):我有几种类型的默认页面,我想在我的应用程序启动时启动。1-匿名用户2...5-对于自动记录的其他用户角色(cookie)。所以这几乎是一个简单的“如果”,我知道,但与此同时我正在使用不能在RouteConfig.csUser.IsInRole("RoleName")方法/strong>.如果只是简单地添加一个Using语句,我提前为问题的简单性道歉。更新:我已经通过一些方法做到了:if(User.UserInRole("RoleName")在我的默认ActionResault中返回RedirectToAction("ActionName")。虽然这不是一个
我一直在玩新的WebAPI2(顺便说一句,它看起来很有前途),但我有点头疼要让一些路由正常工作。当我有GetAllUsers/GetUser(intid)时一切正常,但是当我添加GetUserByName(stringname)和/或GetUserByUsername(stringusername)时,事情开始变得令人毛骨悚然。我知道int将是第一个,我可以重新排序路由,但让我们想象一下以下场景:用户可以有一个有效的username=1234或name=1234(我知道这不太可能,但我们需要防止任何可能的情况)并且我们可能有一个有效的1234数据库中的ID和所有路由将混淆。也许这是我们
我们正在构建一个使用Owin托管的WebApi。以前,我们在Controller操作中使用HttpResponseException返回404状态代码等,并且运行良好。但是,当我们开始使用Owin(自托管)时,我们遇到了这种方法的问题,导致HttpResponseException被序列化为json/xml并且状态代码从404更改为500(内部服务器错误)。这是我们的代码:publicclassInvoicesController:ApiController{privatereadonlyIInvoiceRepository_invoiceRepository;publicInvoic
在带有C#4.0/C#2.0的WinForms中,如果控件的可见字段为false,我无法绑定(bind)到控件:this.checkBox_WorkDone.DataBindings.Add("Visible",WorkStatus,"Done");我可以确认绑定(bind)已成功添加到控件的数据绑定(bind)列表,但如果我更改绑定(bind)对象(WorkStatus),则什么也不会发生。这是WorkStatus的样子:publicclassWorkStatus:INotifyPropertyChanged{privateBoolean_done;publicBooleanDone