Tag: asp.net mvc 4

ASP.NET Web API – camelcase中的XML

我们正在使用带有MVC 4的Web API,并且需要在驼峰的情况下提供我们的请求/响应。 我们使用以下代码为JSON做了这个: var jsonFormatter = config.Formatters.OfType().Single(); jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); 遗憾的是,相同的代码不适用于XmlMediaTypeFormatter 。 在camel案例中格式化XML的最优雅的解决方法是什么?

找不到MVC 4 SimpleMembership HasLocalAccount方法

尝试访问/account/manage生产服务器上的/account/manage时,我收到此错误: System.MissingMethodException: Method not found: ‘Boolean WebMatrix.WebData.ExtendedMembershipProvider.HasLocalAccount(Int32)’. at Microsoft.Web.WebPages.OAuth.OAuthWebSecurity.HasLocalAccount(Int32 userId) at PROJECT.Controllers.AccountController.Manage(Nullable`1 message) at lambda_method(Closure , ControllerBase , Object[] ) at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) at Castle.Proxies.AsyncControllerActionInvokerProxy.InvokeActionMethod_callback(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) at Castle.Proxies.Invocations.ControllerActionInvoker_InvokeActionMethod.InvokeMethodOnTarget() at Castle.DynamicProxy.AbstractInvocation.Proceed() at Glimpse.Mvc3.Interceptor.InvokeActionMethodInterceptor.Intercept(IInvocation invocation) at Castle.DynamicProxy.AbstractInvocation.Proceed() at Castle.Proxies.AsyncControllerActionInvokerProxy.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) at System.Web.Mvc.Async.AsyncControllerActionInvoker.c__DisplayClass42.b__41() […]

如何使控制器的名称连字符“ – ”分开?

我能够使用 [ActionName(“My-Action-Name”)] public ActionResult MyActionName() { return View(); } 但我在更改控制器名称时遇到问题。 是否有一些注释可用于在MVC 4中分隔控制器名称连字符( – )? 有点像这样: [ControllerName(“My-Controller-Name”)] public class MyControllerName : Controller { }

ASP.NET MVC绑定与远程validation

我有一个ModelA ,一个成员toBeRemoteChecked和一个模型MapToA与成员valueToMap 。 每当我创建一个ModelA实例时,我还需要一个MapToA实例,所以我有一个模型CreateModelA ,它包含一个成员modelA和一个成员valueToMap 。 提交表单时,我将modelA添加到数据库表ModelA并创建并向MapToA添加一个实例,该实例由MapToA的id和valueToMap 。 在代码方面 public class ModelA { [Key] public int ID { get; set; } [Required, Remote(“isValid”, “MyController”, ErrorMessage = “not valid”)] public string toBeRemoteChecked { get; set; } } public class MapToA { [Key] public int Map_ID { get; set; } [Required] public int modelAID { get; set; […]

堆栈不足以继续安全地执行程序。 ASP.NET MVC 4

我的搜索function似乎在无限循环中继续,每次我的调试命中POST动作结果下面的操作被触发。 在我的Masterpage.cshtml中,我有以下操作: @Html.Action(“Search”, “Search”) 这是得到以下错误的部分: 堆栈不足以继续安全地执行程序。 这可能是因为调用堆栈上的函数太多或堆栈上的函数占用太多堆栈空间。 在我的SearchController中,我有一个get和post动作方法: [HttpGet] public ActionResult Search() { return PartialView(“SearchFormPartial”); } 这个返回包含以下内容的部分视图: @using (Ajax.BeginForm(“Search”, “Search”, FormMethod.Post, new AjaxOptions { InsertionMode = InsertionMode.Replace, HttpMethod = “POST” })) { @Html.TextBox(“query”, “”, new { @class = “search-query”, @placeholder=”Search news…”, @spellcheck=”false”}) } 它基本上是一个带有文本框和提交按钮的表单。 这是http post actionresult: [HttpPost] public ActionResult Search(string query) { if (query […]

ASP.NET MVC:不能将lambda表达式用作动态调度操作的参数

我有一个ASP.NET MVC4应用程序。 我的视图从我的控制器获取一个List。 我想用lambda表达式选择这些列表,但是我收到以下错误: 如果不首先将lambda表达式转换为委托或表达式树类型,则不能将lambda表达式用作动态分派的操作的参数 List layers = new List(); layers = @Model.layers.Select(x => x.KONT == “EUROPE”); @ Model.layers是一个List 我现在试过:但是同样的错误: @{ List layers = Model.layers.Where(x => x.KNOT == “EUROPE”).ToList(); }

更新Autofac后出现奇怪的exception

我之前有一个MVC4应用程序,我已经更新了Autofac版本,每件事都运行正常,现在我有这个奇怪的例外。 请帮忙!? Method not found: ‘Autofac.Builder.IRegistrationBuilder`3 Autofac.Builder.IRegistrationBuilder`3.InstancePerMatchingLifetimeScope(System.Object)’. Line 22: var builder = new ContainerBuilder(); Line 23: builder.RegisterFilterProvider(); Line 24: builder.Register(x => new AuthorizationService()).As().InstancePerHttpRequest(); Line 25: builder.Register(x => new HeaderRepository()).As().InstancePerHttpRequest(); Line 26: builder.Register(x => new PageBuilder()).As().InstancePerHttpRequest(); 堆栈跟踪: [MissingMethodException: Method not found: ‘Autofac.Builder.IRegistrationBuilder`3 Autofac.Builder.IRegistrationBuilder`3.InstancePerMatchingLifetimeScope(System.Object)’.] Autofac.Integration.Mvc.RegistrationExtensions.InstancePerHttpRequest(IRegistrationBuilder`3 registration) +0 Application.UI.Web.Services.HttpDependencyInjectionResolver.RegisterDependencies() in c:\Users\user\Documents\Visual Studio 11\Projects\MyProject\Application.UI.Web\Services\HttpDependencyInjectionResolver.cs:24 Application.UI.Web.MvcApplication.Application_Start() in c:\Users\user\Documents\Visual Studio 11\Projects\MyProject\Application.UI.Web\Global.asax.cs:42 […]

如何自定义validation属性错误信息?

目前我有一个名为ExistingFileName的自定义validation属性(下面),但我已经给它显示错误消息 protected override System.ComponentModel.DataAnnotations.ValidationResult IsValid(object value, System.ComponentModel.DataAnnotations.ValidationContext validationContext) { if (value!=null) { string fileName = value.ToString(); if (FileExists(fileName)) { return new ValidationResult(“Sorry but there is already an image with this name please rename your image”); } else { return ValidationResult.Success; } } else { return new ValidationResult(“Please enter a name for your image”); } } […]

在MVC类上创建主键字段

我是MVC和C#的新手。 我偶然发现它并发现它很有趣。 我遇到了一个不允许我继续的问题。 这是我的代码: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace MyHotel.Models { public class AccountTypes { public int AccountTypeID { get; set; } public string AccountTypeName { get; set; } } } 之后我创建了控制器和视图。 为此,我一直有这个错误: 在模型生成期间检测到一个或多个validation错误: System.Data.Edm.EdmEntityType: : EntityType ‘AccountTypes’ has no key defined. Define the key for this EntityType. System.Data.Edm.EdmEntitySet: […]

在MVC 4中使用自定义授权

我目前正在使用MVC 4 Web API项目类型开发Web API。 我目前处于需要为API添加一些安全性的阶段。 我知道Authorize属性,但客户端更喜欢不同的方法。 为此,我试图覆盖我自己的类中的Authorize属性,作为一个基本的开始,我只是让AuthorizeCore总是返回false,这应该意味着没有经过身份validation。 如果我然后将其添加到控制器中的Action,则操作始终完成,并且我始终检索数据。 我认为原因可能是由于自定义属性未在web.config文件中注册,但是,我不确定如何在不使用表单身份validation时进行此操作。 我用来测试的代码是一个全新的MVC 4 Web API项目,其自定义属性如下所示。 public class Auth : AuthorizeAttribute { protected override bool AuthorizeCore(HttpContextBase httpContext) { return false; } protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext) { filterContext.Result = new RedirectResult(“http://www.google.com”); } } 然后我将属性添加到默认ValuesController的Get方法中 [Auth] public IEnumerable Get() 但是,当我导航到domain / api / Values时,我总是会看到数据,而不是预期的重定向谷歌。 任何帮助表示赞赏。 编辑:看了一下之后我在这里找到了这个: http : […]