我正在开发一个在asp.net mvc 3中的Web应用程序。我对它很新。 在使用剃刀的视图中,我想声明一些局部variables并在整个页面中使用它。 如何才能做到这一点? 能够做到以下行为似乎相当微不足道: @bool isUserConnected = string.IsNullOrEmpty(Model.CreatorFullName); @if (isUserConnected) { // meaning that the viewing user has not been saved <div> <div> click to join us </div> <a id="login" href="javascript:void(0);" style="display: inline; ">join</a> </div> } 但是这不起作用。 这可能吗?
ASP.NET MVC中的ViewResult()和ActionResult()之间有什么区别? public ViewResult Index() { return View(); } public ActionResult Index() { return View(); }
我已经下载并成功运行了以下的ASP.NET身份示例: https : //github.com/rustd/AspnetIdentitySample 我现在正在实施我的项目中的ASP.NET身份框架的中间,并遇到了一个问题,这一直使我疯狂的一整天… GetOwinContext()不作为我的HttpContext上的扩展方法存在 我正在实现类库中的身份框架。 我已经安装了Identity框架的所有最新版本(预发行版本),除此之外,所有的工作都正常。 我已经尝试在我的控制器中执行相同的代码,并find相同的问题。 我明显错过了某处的参考,虽然我不知道是什么..! 正在杀死我的代码块是: private IAuthenticationManager AuthenticationManager { get { return HttpContext.GetOwinContext().Authentication; } } 我已经添加了以下引用 – 在我的类库中也尝试过这些,并直接在控制器上,他们都没有为我工作… using Microsoft.AspNet.Identity; using Microsoft.AspNet.Identity.EntityFramework; using Microsoft.Owin.Security; using Microsoft.Owin; using System.Web; …这是把我推上墙……任何想法? UPDATE 我已经在示例中检查了Identity&OWIN的版本,并且确保我的解决scheme中具有相同的版本。 更重要的是,如果我searchGetOwinContext的示例上的对象浏览器,我可以find该方法,但是当我在我的解决scheme中search它时,无处可寻…我必须有一些库过时,但我可以找不到!
我想在我的母版页中设置一个CSS类,这取决于当前的控制器和操作。 我可以通过ViewContext.Controller.GetType().Name来获取当前的控制器,但是如何获得当前的操作(例如Index , Show等)呢?
我很好奇,看看你是否可以在ASP.NET MVC中重载控制器方法。 每当我尝试,我得到下面的错误。 这两种方法接受不同的论点。 这是不能做的吗? 当前在控制器types“MyController”上的操作“MyMethod”的请求在以下操作方法之间是不明确的:
我想在我的应用程序中有2个单独的布局。 假设一个用于网站的公共部分,另一个用于会员方。 为了简单起见,可以说每个站点的所有逻辑被整齐地包裹到2个不同的控制器中。 PublicController StaffController 而且他们每个都有一个对应的布局。 _PublicLayout.cshtml _StaffLayout.cshtml 如何使用_ViewStart.cshtml文件指定“Public”下的所有View / Action使用PublicLayout,“Staff”下的所有内容都使用StaffLayout? 谢谢!
我因为某种原因找不到它,感觉有点蠢。 我怎么知道? 我在VS2010中使用.net 4。
是否有内置的方式来获取完整的url? 我正在寻找像GetFullUrl("Action", "Controller") ,将返回像http://www.fred.com/Controller/Action 。 我寻找这个的原因是为了避免在生成的自动电子邮件中对url进行硬编码,这样就可以始终相对于网站的当前位置生成url。
在.NET MVC4项目中, @Styles.Render是如何工作的? 我的意思是,在@Styles.Render("~/Content/css")哪个文件调用? 我没有在我的Content文件夹中有一个叫“css”的文件或文件夹。
我正在研究MvcContrib Grid组件,我着迷于它,但同时又被网格语法中使用的语法技巧击退了: .Attributes(style => "width:100%") 上面的语法将生成的HTML的样式属性设置为width:100% 。 现在,如果你注意,'风格'是无处指定的,从expression式中参数的名称推导! 我不得不深究这一点,发现“魔法”发生的地方: Hash(params Func<object, TValue>[] hash) { foreach (var func in hash) { Add(func.Method.GetParameters()[0].Name, func(null)); } } 所以确实,代码使用forms,编译时间,参数名称来创build属性名称 – 值对的字典。 由此产生的语法结构的确非常具有performance力,但同时又非常危险。 一般使用lambdaexpression式可以replace所使用的名称而不会产生副作用。 我在书中看到一个例子,说collection.ForEach(book => Fire.Burn(book))我知道我可以写在我的代码collection.ForEach(log => Fire.Burn(log)) , 它意味着相同东西 。 但是,在这里使用MvcContrib Grid语法突然间,我发现代码可以根据我为我的variablesselect的名称进行主动查找并进行分解。 那么C#3.5 / 4.0社区和lambdaexpression式爱好者的这种常见做法是什么? 或者是一个stream氓特技,我不应该担心?