Tag: asp.net mvc 3

如何在重定向,asp.net mvc3之前确保控制器和操作存在

在我的一个控制器+动作对中,我从另一个地方获取另一个控制器和动作的值作为字符串,我想重定向我当前的动作。 在进行重定向之前,我想确保我的应用程序中存在控制器+操作,如果没有,则重定向到404.我正在寻找一种方法来执行此操作。 public ActionResult MyTestAction() { string controller = getFromSomewhere(); string action = getFromSomewhereToo(); /* At this point use reflection and make sure action and controller exists else redirect to error 404 */ return RedirectToRoute(new { action = action, controller = controller }); } 我所做的就是这个,但它不起作用。 var cont = Assembly.GetExecutingAssembly().GetType(controller); if (cont != null && cont.GetMethod(action) […]

为什么这个错误,’序列不包含任何元素’,正在发生?

我收到一个无效的操作exception,堆栈在下面。 我认为这是因为db.Responses.Where(y => y.ResponseId.Equals(item.ResponseId)).First(); 没有返回任何结果。 我检查了响应数据,userResponseDetails有一个ResponseId,我也只使用了硬编码值。 我也知道调用这个的语句是添加此函数应该调用的Responses行。 (这个工作大约一个月前,我不记得改变什么会打破这个) [InvalidOperationException: Sequence contains no elements] System.Linq.Enumerable.First(IEnumerable`1 source) +269 System.Data.Objects.ELinq.ObjectQueryProvider.<GetElementFunction>b__0(IEnumerable`1 sequence) +41 System.Data.Objects.ELinq.ObjectQueryProvider.ExecuteSingle(IEnumerable`1 query, Expression queryRoot) +59 System.Data.Objects.ELinq.ObjectQueryProvider.System.Linq.IQueryProvider.Execute(Expression expression) +133 System.Data.Entity.Internal.Linq.DbQueryProvider.Execute(Expression expression) +87 System.Linq.Queryable.First(IQueryable`1 source) +251 InSight.Controllers.ForecasterController.userResponseDetails(List`1 userResponseDetails) +1039 这是违规代码。 [HttpPost] public JsonResult userResponseDetails(List userResponseDetails) { foreach (ResponseDetailsPartial item in userResponseDetails) { ResponseDetails temp = new ResponseDetails(); temp.ResponseId […]

如果URL包含片段,为什么Url.IsLocalUrl返回false?

我正在使用Url.IsLocalUrl来检查传递给我的身份validation操作的返回URL是否是本地的。 只要URL中没有片段,它就可以正常工作。 也就是说, /t/test-team-3/tasks/lists/15返回true,但/t/test-team-3/tasks#/lists/15返回false。 这背后的原因是什么? 是否有一些模糊的安全问题可能会在片段中出现,或者我可以在检查URL是否为本地时安全地忽略该片段?

何时使用IModelBinder与DefaultModelBinder

我有一个MVC3站点,其模型不能与默认模型绑定一起使用。 我一直在寻找代码样本,看起来我可以创建一个自定义模型绑定器,它可以实现IModelBinder,也可以从DefaultModelBinderinheritance。 有人可以解释每种方法的优缺点,也可以解释何时使用一种方法而不是另一种方法的例子。 提前致谢。

如何从MVC3中的javascript调用Controller方法?

我使用MVC3架构,c#.net。 当焦点更改为下一个字段即密码字段时,我需要立即将文本框内容(用户ID)与数据库进行比较。 所以我想在用户ID字段中使用onblur事件,然后调用Controller方法。 谁能告诉我如何处理这个问题? 作为一个新手,代码片段受到高度赞赏。 提前致谢, 普拉香特

发现多个类型与名为“Home”的控制器相匹配 – 在两个不同的区域中

我的项目有两个方面。 现在,当我运行程序时,我收到此错误: Multiple types were found that match the controller named ‘Home’. This can happen if the route that services this request (‘{controller}/{action}/{id}’) does not specify namespaces to search for a controller that matches the request. If this is the case, register this route by calling an overload of the ‘MapRoute’ method that takes a […]

asp.net MVC 3中的ViewData和PageData有什么区别?

嗯,我看到这2个属性,但我不明白它们之间的区别? 我似乎无法在任何地方找到任何有关PageData礼仪的帮助。 所以身体有帮助吗? @ { Viewdata[“something”] = 1; PageData[“something”] = 2; } 谢谢

ASP.NET MVC3:强制控制器使用日期格式dd / mm / yyyy

基本上,我的datepicker使用英国格式的dd/mm/yyyy 。 但是当我提交表单时,ASP.net显然使用美国格式。 (只接受少于12天,即认为是月份。) public ActionResult TimeTable(DateTime ViewDate) 有没有办法强迫它识别某种方式? 奇怪的是,其他插入方法似乎认识到正确的格式。 “参数字典包含参数ViewDate的null条目,该参数为非可空类型System.DateTime用于ViewDate中方法System.Web.Mvc.ActionResult Index(System.DateTime) 。可选参数必须是引用类型,可以为空的类型,或者声明为可选参数。“

ASP.NET MVC3 WebGrid格式:参数

我试图在ASP.NET MVC3中使用新的WebGrid,并且我希望显示一组链接图标,执行各种操作(编辑,查看,删除)……为此,我有一个HtmlHelper扩展,基本上输出HTML: 扩展返回MvcHtmlString,它在Razor视图中单独使用时工作正常.Eg:@ Html.ActionLinkIconForEditAction(“Customer”,2) 问题是我需要在传递对象的ID时在WebGrid列中调用此帮助程序(每个操作一次)。 我难以理解的问题是编译器给我一个错误,说它无法将MvcHtmlString(或’lambda expression’取决于我尝试的调用)转换为格式预期的System.Func … 例如,这有效: grid.Column(header: “”, format: @@Html.ActionLinkIconForEditAction(“Customer”, 2)) 但这不是: grid.Column(header: “”, format: (customer) => @@Html.ActionLinkIconForEditAction(“Customer”, customer.Id)) grid.Column(header: “”, format: (customer) => Html.ActionLinkIconForEditAction(“Customer”, customer.Id)) 我明白了: Error 4 Argument 3: cannot convert from ‘lambda expression’ to ‘System.Func’ 或者这个电话: grid.Column(header: “”, format: Html.ActionLinkIconForEditAction(“Customer”, customer.Id)), 我明白了: Error 5 Argument 3: cannot convert from […]

如何在MVC中使用会话变量

我在“Global.asax”文件中声明了Session变量, protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); int temp=4; HttpContext.Current.Session.Add(“_SessionCompany”,temp); } 并希望将此会话变量用于我的控制器的操作, public ActionResult Index() { var test = this.Session[“_SessionCompany”]; return View(); } 但是我在访问会话变量时遇到exception。 请帮我解决这个问题,如何将会话变量访问到我的控制器的Action中。 我在Global.asax中的Application_Start中获得了一个exception,例如”Object Reference not set to an Insatance of an object” HttpContext.Current.Session.Add(“_SessionCompany”,temp);