Tag: asp.net mvc

‘ValueTuple ‘存在于’System.ValueTuple …’和’mscorlib ……’中

B“H 我正在尝试使用C#7的新Tuplefunction,并遇到一些问题。 实际上,他们工作正常,我不确定是什么改变让他们rest。 我正在使用ASP.Net 4 , MVC 5 ,目标.net framework 4.6.1 所以为了使用元组,我不得不使用Nuget Package’System.ValueTuple ‘System.ValueTuple’ 。 没有它,项目将无法编译。 它运作良好一段时间。 然后今天当我加载任何使用元组的页面时,我得到了 编译器错误消息:CS0433:类型’ValueTuple’存在于’System.ValueTuple,Version = 4.0.2.0,Culture = neutral,PublicKeyToken = cc7b13ffcd2ddd51’和’mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089 “ 该项目编译良好,如果我删除System.ValueTuple然后它不编译。 但是当我在网页中运行它时,我得到了这个错误。 我在谷歌上的搜索建议将ValueTuple添加到.net 4.7但我在项目的任何地方都没有引用4.7,而我没有编译4.7。 我的VS 2017甚至没有这个选项。 谢谢

Asp.Net捆绑不使用.min文件

根据发布模式下的文档,bundler应该使用.min.js文件(如果存在)。 我通过以下方式添加角度: bundles.Add(new ScriptBundle(Bundles.Scripts).Include( “~/Content/Scripts/angular.js”)); 我在同一个文件夹中有angular.js和angular.min.js。 所以根据我的理解,bundler应该只使用angular.min.js并且不做任何事情。 但是,当我在http响应中检查结果时,它会有所不同。 它也缩小了,但所有的名字都不同: 我在浏览器中得到了什么: (function(n,t,i){“use strict”;function v(n) Angular.min.js (function(P,X,u){‘use strict’;function M(b) 有人可以解释为什么会这样吗? 捆绑器是否只是忽略.min文件或者再次缩小.min.js? PS我试图删除angular.js文件,然后我得到一个空结果,所以看起来捆绑器根本不关心angular.min.js存在。

如何从asp.net mvc 2应用程序中的自定义ValidationAttribute内部访问其他属性值?

我正在使用带有C#和DataAnnotations的asp.net mvc 2。 情况是这样的:我有一个针对模型类强类型的自定义控件。 此控件在视图上多次显示,但具有不同的属性值,例如标题(例如:问题1,问题2,问题3等等都是标题)。 我可以编写一个自定义validation类来validation整个对象,但问题是,我无法获得要显示的特定Html.ValidationMessage(…)标记。 validation错误仅显示在视图顶部的摘要中,我希望它们显示在validation失败的特定控件的顶部和旁边。 我已经尝试创建自定义validation类,如下所示,以逐个属性validation属性,但问题是我需要两个模型的值:评级和标题。 实际业务validation是针对评级执行的,但是标题属性向用户标识屏幕上的哪个控件不正确。 [AttributeUsage(AttributeTargets.Property)] public class RatingValidation : ValidationAttribute { public string Heading { get; private set; } private readonly string ErrorRatingInvalid = “Rating for {0} is invalid. Rating is required and must be between 1 and 5.”; public override string FormatErrorMessage(string name) { String errorMsg = ErrorRatingInvalid; return […]

无法使用Headers =“application / x-www-form-urlencoded”编码我的JSON对象insdie我的WebClient UploadString

我正在开发一个ASP.Net MVC 4 Web应用程序,我需要将JSON对象发布到第三方API。 现在我需要通过将内容类型设置为application/x-www-form-urlencoded来编码我的JSON数据,如API文档中所述。 所以我尝试了以下内容,将Content-Type指定为wc.Headers[“Content-Type”] = “application/x-www-form-urlencoded”; : – var data = JsonConvert.SerializeObject(mainresourceinfo); using (WebClient wc = new WebClient()) { string url = currentURL + “resources?AUTHTOKEN=” + pmtoken; Uri uri = new Uri(url); // wc.Headers[HttpRequestHeader.ContentType] = “application/x-www-form-urlencoded”; wc.Headers[“Content-Type”] = “application/x-www-form-urlencoded”; crudoutput = wc.UploadString(uri, “INPUT_DATA=” + data); } 但是数据仍然没有被编码..如果我在我的JSON字符串中发送一个123%456类的值,它将被保存为第三部分系统内的123E6t 。 现在作为一种解决方法,我使用WebUtility.UrlEncode(data)手动编码JSON对象,然后将其发送到第三方API,我可以看到123%456等值将正确保存…但我不知道想要手动编码数据,我想设置内容类型来指定编码…这可能吗?

将数据从模型传递到自定义validation类

我有一个数据validation类,用于检查会议的开始日期是否在结束日期之前。 该模型会自动传递需要validation的日期,但是我在传递需要validation的数据时遇到了一些困难。 这是我的validation课程 sealed public class StartLessThanEndAttribute : ValidationAttribute { public DateTime DateEnd { get; set; } public override bool IsValid(object value) { DateTime end = DateEnd; DateTime date = (DateTime)value; return (date < end); } public override string FormatErrorMessage(string name) { return String.Format(CultureInfo.CurrentCulture, ErrorMessageString, name); } } 这是包含数据注释的类 [StartLessThanEnd(ErrorMessage=”Start Date must be before the […]

将video上传/保存到数据库或文件系统

我之前从未尝试过保存video,因此我对此并不了解。 我知道如果video很小我可以转换为字节数组并保存到数据库,但为了更高效我想学习如何将任何上传的video保存到我的服务器文件,然后只保存文件的路径我的数据库表中的video。 我完全不知道如何开始这样做。 我在下面看过这个例子,但不太清楚它在做什么。 对我来说,似乎它保存了任何用户上传到App_Data文件夹的任何上传video。 是对的吗? 任何帮助是极大的赞赏。 [HttpPost] public ContentResult UploadFiles() { var r = new List(); foreach (string file in Request.Files) { HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase; if (hpf.ContentLength == 0) continue; string savedFileName = Path.Combine(Server.MapPath(“~/App_Data”), Path.GetFileName(hpf.FileName)); hpf.SaveAs(savedFileName); // Save the file r.Add(new ViewDataUploadFilesResult() { Name = hpf.FileName, Length = hpf.ContentLength, Type = […]

ActionContext在Microsoft.AspNetCore.Mvc.Controller中消失了

我无法在Microsoft.AspNetCore.Mvc.Controller中找到ActionContext 之后我将我的版本更改为AspNetCore 1.0.0-preview1 这是Controller类(更改后): 并且在更改之前从“ Microsoft.AspNet.Mvc ”: 更新前的旧方法代码: this.Agent = ControllerInfo.Request.Headers[“User-Agent”]; this.IP = ControllerInfo.HttpContext.Features.Get()?.LocalIpAddress?.ToString(); this.RemoteIP = ControllerInfo.HttpContext.Features.Get()?.RemoteIpAddress.ToString(); this.Refrence = ControllerInfo.ActionContext.RouteData.Values[“controller”].ToString() + “/” + ControllerInfo.ActionContext.RouteData.Values[“action”].ToString();

Cookie身份validation提前到期

问题 在我的ASP.NET MVC Core 2.0应用程序中,我设置了使用cookie身份validation方案而不使用Identity,因为我们拥有自己的后端身份validation存储和api。 身份validation和授权每次都能完美运行。 但是,无论登录/会话在大约30分钟后过期。 您可以看到我们将身份validationcookie和会话cookie的超时设置为120分钟。 应用信息: 平台:.Net 4.7.x(Windows) 框架:Asp.Net Core 2.x IIS用作代理服务器 如何解决这个问题的任何帮助或意见都将受到欢迎 码 更新:用services.AddDistributedRedisCache(..)替换services.AddMemoryCache() – 测试看看它是如何工作的 Startup.cs public void ConfigureServices(IServiceCollection services) { services.AddDistributedRedisCache(options => { options.Configuration = “localhost”; options.InstanceName = “CoreTestInstance”; }); services.AddAuthentication(“CookieAuthenticationScheme”) .AddCookie(“CookieAuthenticationScheme”, options => { options.Cookie.Name = authSettings.Name; options.Cookie.HttpOnly = false; options.Cookie.Expiration = TimeSpan.FromMinutes(120); options.ExpireTimeSpan = TimeSpan.FromMinutes(120); options.AccessDeniedPath = […]

JSON.Net反序列化包含特殊字符的字符串

如何使用包含特殊字符的值之一解析JSON字符串? JObject obj = JObject.Parse(str); str值: { “message”: “some !@#$%^&*(){}:”?/?/|”‘:>;><{"d":"v"}" } 我有execption: 解析一个值后遇到一个意外的字符:{。

问题解决与Unity的依赖关系

一旦我试图解决我的unitOfWork我得到这个错误: “IUnitOfWork类型没有可访问的构造函数。” 但是,只有当我将unitOfWork的LifetimeManager设置为PerResolveLifetimeManager时才会发生这种情况。 如果我只是使用默认的,一切正常。 我的unitOfWork,有一个公共无参数构造函数。 这是我的代码: //Global asax IUnityContainer unity = new UnityContainer(); unity.RegisterType(); unity.RegisterInstance(new UnitOfWork(), new PerResolveLifetimeManager()); ControllerBuilder.Current.SetControllerFactory(new IocControllerFactory(unity)); //IocControllerFactory public class IocControllerFactory : DefaultControllerFactory { private readonly IUnityContainer _container; public IocControllerFactory(IUnityContainer container) { _container = container; } protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType) { if (controllerType != null) return _container.Resolve(controllerType) as IController; […]