Tag: asp.net mvc

如何在Web Api控制器中触发OnActionExecuting?

我的api端点使用的是asp.net mvc(4)web api控制器。 有没有类似于mvc OnActionExecuting的事件? 另外,如果请求具有授权令牌,如何访问Request对象以进行查找?

如何在ASP.NET MVC控制器中访问Request.cookies?

我正在尝试通过一个公共的控制器文件获取存储在cookie中的用户ID,我可以在整个站点访问该文件。 我创建了FunctionsController作为控制器,内容如下: public static int loggedinUser() { return Convert.ToInt32( request.Cookies[“userid”].Value); } 即使我尝试过,我也无法申请任何Cookie项目: HttpRequestBase request = controllerContext.HttpContext.Request;

在ASP.NET MVC 3中为控制器设置默认操作(而不是索引)

我有一个名为Dashboard的控制器,其中包含3个操作: Summary , Details和Status ,其中任何一个都不带ID或任何其他参数。 我希望URL /Dashboard路由到Dashboard控制器的Summary操作,如/Dashboard/Summary那样,但我无法找出添加路由的正确方法。 在Global.asax.cs ,我有以下内容: routes.MapRoute( “Default”, // Route name “{controller}/{action}/{id}”, // URL with parameters new {controller = “Home”, action = “Index”, id = UrlParameter.Optional} // Parameter defaults ); routes.MapRoute( “/Dashboard”, “Dashboard”, new { controller = “Dashboard”, action = “Summary” } ); 对于第二部分,我也尝试过: routes.MapRoute( “/Dashboard”, “{controller}”, new { controller = “Dashboard”, […]

ASP .NET MVC NonAction含义

任何人都可以告诉我为什么要使用NonAction? 我的意思是说我有一个包含多个提交值的表单:Update,Delete或Insert。 由于所有提交按钮具有相同的共同forms,因此我在控制器内切换提交值并采取相应措施。 像这样: public ActionResult asd(string submitButton){ switch(submitButton){ case “Insert”: return Insert(); // bla bla bla } } [NonAction] public ActionResult Insert(){ // some code inside here return View(); } 再一次,我为什么要使用NonAction而不是这样的东西: public void Insert(){ // some code inside here }

将Nininject MVC与类库一起使用

我对IoC框架很陌生,所以请原谅这个术语。 所以我所拥有的是一个带有Nininject MVC参考的MVC项目。 我的项目中有其他类libarys,例如Domain层,我希望能够在那里使用Ninject框架,但我的所有绑定都在MVC项目的App_Start文件夹下的App_Start中: private static void RegisterServices(IKernel kernel) { kernel.Bind().To(); kernel.Bind().To(); } 目前在我的类库中我使用构造函数注入,但有时我不得不对依赖项进行硬编码: var service = new WindowsHardwareService(); 当我希望能够做到以下几点: IKernel kernel = new StandardKernel(…..); var context = kernel.Get(); 我没有做以下因为我没有任何模块? 我读过的所有文档主要针对的是常规Ninject库而不是MVC版本。 我需要做什么,以及如何将常规Ninject库与MVC版本一起使用? 更新 这是我尝试过的: 这样做的目的是使每个项目都可以加载模块并获得当前注入的接口。 App_Start / NinjectWebCommon.cs (在MVC项目中) private static void RegisterServices(IKernel kernel) { var modules = new IoCModules(); var newKernal = modules.GetKernel(); kernel […]

@ Html.DisplayText实际上不会显示文本

以下是我的一个ASP MVC3索引页面上表格第一行的第一部分。 当页面加载时,我已逐步完成代码,并且可以看到条件的评估已正确完成,但不是“CE”或“PT”显示。 我是ASP MVC的新手,有人可以帮助我解释语法/解释发生了什么吗? @foreach (var item in Model.Where(i => i.Status != “C”)) { var Id = item.Id; @if (!String.IsNullOrWhiteSpace(item.TableName)) { if (item.TableName.Equals(“AgentContEd”)) { @Html.DisplayText(“CE”); } else if (item.TableName.Equals(“AgentProductTraining”)) { @Html.DisplayText(“PT”); } else { @Html.DisplayFor(modelItem => item.TableName) } }

当缺少asp.net mvc的参数时自动抛出404错误

当谷歌机器人出现时,我收到了以下错误: 参数字典包含非可空类型’System.Int32’的参数’id’的空条目,用于’someclass’中的方法’System.Web.Mvc.ActionResult Show(Int32)’。 可选参数必须是引用类型,可空类型,或者声明为可选参数。 参数名称:参数 我想知道在这种情况下是否有可能让应用程序抛出404而不是缺少参数exception。 谢谢! 更新以澄清我想要的是,此特定错误的所有情况都会抛出404错误而不是500错误。最好通过编写某种只捕获此错误的包装器。

Razor部分可以选择吗?

如果我有一个页面: @section SomeStuff { This is a section I just addered } 布局是否有可能不呈现此部分,或者与概念上的工作方式相反。 似乎能够不在页面上呈现某些部分是有用的(除非我正在考虑这个错误)。 编辑: 包含错误消息可能会有所帮助,当我将一个部分放入主页面时, 布局页面将失败: The following sections have been defined but have not been rendered for the layout page “/Views/Layouts/_Layout1.cshtml”: “SomeStuff”. 好像它迫使我渲染页面上的每个部分或其他东西。 换句话说,在Layout.cshtml中,我不调用@RenderSection,但在Index.html中我有一个名为SomeStuff的部分已定义。 这合法吗? 好像它迫使我渲染页面中的所有部分,但似乎部分应该是可选的,不是吗?

ASP.NET MVC绑定十进制值

我试图找出为什么框架拒绝将“1,234.00”值绑定到十进制。 可能是什么原因呢? 像“123.00”或“123.0000”这样的值绑定成功。 我有以下代码在Global.asax中设置我的文化配置 public void Application_AcquireRequestState(object sender, EventArgs e) { var culture = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone(); culture.NumberFormat.NumberDecimalSeparator = culture.NumberFormat.CurrencyDecimalSeparator = culture.NumberFormat.PercentDecimalSeparator = “.”; culture.NumberFormat.NumberGroupSeparator = culture.NumberFormat.CurrencyGroupSeparator = culture.NumberFormat.PercentGroupSeparator = “,”; Thread.CurrentThread.CurrentCulture = culture; } 法国文化在Web.Config中被设置为默认文化 我潜入了System.Web.Mvc.dll的ValueProviderResult类的源代码。 它使用的是System.ComponentModel.DecimalConverter。 converter.ConvertFrom((ITypeDescriptorContext) null, culture, value) 这是消息“1,234.0000不是十进制的有效值”。 来自。 我试图在我的操场上运行以下代码: static void Main() { var decConverter = TypeDescriptor.GetConverter(typeof(decimal)); var culture = new […]

从Asp.net mvc4控制器调用不同文件夹的视图

我在Views的Jobs文件夹中有一个View Name“Message”。 我想从不同控制器的动作返回该视图,名为“MarketController” public class MarketController : Controller { [HttpPost] public ActionResult Save() { // logic to save the record TempData[“message”] = “Save successfully”; return View(“Message”); } } 问题是“消息”视图不在市场视图中,我如何从MarketController返回该视图。 (我不想在这里使用RedirectToaction方法。)