Articles of asp.net mvc 4

如何处理System.Data.Entity.Validation.DbEntityValidationException?

我的应用程序收到以下错误: EntityFramework.dll中出现“System.Data.Entity.Validation.DbEntityValidationException”类型的exception,但未在用户代码中处理 附加信息:一个或多个实体的validation失败。 有关详细信息,请参阅“EntityValidationErrors”属性。 尝试注册新用户时出现此错误。 ‘db.SaveChanges()’发生错误 这是代码: public ActionResult Registration(x.Models.User user) { if(ModelState.IsValid) { using(var db = new xDBEntities1()) { var crypto = new SimpleCrypto.PBKDF2(); var encrpPass = crypto.Compute(user.password); var sysUser = db.users.Create(); sysUser.email = user.email; sysUser.username = user.username; sysUser.password = encrpPass; sysUser.premium_credits = 0; sysUser.login_times = 0; sysUser.last_ip = Request.ServerVariables[“REMOTE_ADDR”]; sysUser.creation_ip = Request.ServerVariables[“REMOTE_ADDR”]; sysUser.banned […]

将常见的razor助手移动到另一个文件

我有一个MVC4网络应用程序,我目前有几个@helper的我在多个页面上使用,在cshtml中定义。 问题是,我必须在他们使用的每个页面上定义它们。 是否可以创建一个包含我所有@helper的.cshtml文件,并将该页面包含在我的视图中? 即,这用于cms区域中的每个Index视图。 @helper DisplayPager(Int32 CurrentPage, Int32 MaxPages) { String IsActive = “”; 0 ? CurrentPage – 1 : 1 })”>Prev @for (int i = 0; i < MaxPages; i++) { IsActive = ((i + 1) == CurrentPage) ? "active" : ""; @(i + 1) } <a href="https://stackoverflow.com/questions/18085263/move-common-razor-helpers-to-another-file/@Url.Action("Index", new { id = CurrentPage + […]

RadiobuttonFor用于Mvc Razor语法

我有三个单选按钮,我的字段值类型是整数,如Maintenance for 3,Active for 1和Inactive for 2。 @Html.RadioButtonFor(model => model.StatusId, “3”) Maintenance @if (Model.IsReady == true) { @Html.RadioButtonFor(model => model.StatusId,”1″) Active } @Html.RadioButtonFor(model => model.StatusId, “2”) Inactive 我使用上面的代码,然后正确插入数据,但当我的表单在编辑模式下打开,然后我没有选择任何单选按钮。 我也使用下面的代码,但没有成功。 @Html.RadioButtonFor(model => model.StatusId, “3”, Model.StatusId == ‘3’ ? new {Checked = “checked”} : null) Maintenance @if (Model.IsReady == true) { @Html.RadioButtonFor(model => model.StatusId, “1”,Model.StatusId == ‘1’ […]

将数据发布到asp.net Web API

我正在试图弄清楚新的ASP.NET Web API。 到目前为止,我已经能够创建此方法签名并连接到它很好并获得有效的响应… [HttpPost] public HttpResponseMessage CreateAccount() 我能够使用fiddler向此方法发送请求,并已validation它正在接收请求。 但是,当我尝试传递数据时,我遇到了问题。 我尝试的第一件事就是…… [HttpPost] public HttpResponseMessage CreateAccount([FromBody]string email, [FromBody]string password) 我输入 电子邮件:XYZ,密码:ABC 进入提琴手请求的主体。 当我这样做时,我得到一个500错误说明 ‘无法将多个参数(’email’和’password’)绑定到请求的内容。 我也试过这个方法签名… [HttpPost] public HttpResponseMessage CreateAccount([FromBody]UserAccountRequestData data) UserAccountRequestData是一个简单的POCO public class UserAccountRequestData { public string Email { get; set; } public string Password { get; set; } } 我说 {电子邮件:XYZ,密码:ABC} 要么 数据:{电子邮件:XYZ,密码:ABC} 进入请求的正文。 在尝试填充POCO的两种情况下,我都能够在调试时访问该方法,但数据对象始终为null。 […]

ASP.NET MVC4中的Ninject

所以经过多次搞砸后,我终于将Ninject连接起来并在我的MVC4应用程序中进行编译。 我遇到的问题是IDependencyScope接口不再存在,我所知道的并且System.Web.Http.Dependencies命名空间已经废除。 所以,我现在的问题是我已将所有内容连接起来并运行我得到的应用程序: Sequence contains no elements [InvalidOperationException: Sequence contains no elements] System.Linq.Enumerable.Single(IEnumerable`1 source) +379 Ninject.Web.Mvc.NinjectMvcHttpApplicationPlugin.Start() in c:\Projects\Ninject\ninject.web.mvc\mvc3\src\Ninject.Web.Mvc\NinjectMvcHttpApplicationPlugin.cs:53 Ninject.Web.Common.Bootstrapper.b__0(INinjectHttpApplicationPlugin c) in c:\Projects\Ninject\Ninject.Web.Common\src\Ninject.Web.Common\Bootstrapper.cs:52 Ninject.Infrastructure.Language.ExtensionsForIEnumerableOfT.Map(IEnumerable`1 series, Action`1 action) in c:\Projects\Ninject\ninject\src\Ninject\Infrastructure\Language\ExtensionsForIEnumerableOfT.cs:31 Ninject.Web.Common.Bootstrapper.Initialize(Func`1 createKernelCallback) in c:\Projects\Ninject\Ninject.Web.Common\src\Ninject.Web.Common\Bootstrapper.cs:53 Ninject.Web.Common.NinjectHttpApplication.Application_Start() in c:\Projects\Ninject\Ninject.Web.Common\src\Ninject.Web.Common\NinjectHttpApplication.cs:81 我无法追踪甚至开始了解它的来源。 我在Global.asax.cs中的标准Ninject方法如下所示: protected override IKernel CreateKernel() { var kernel = new StandardKernel(); kernel.Load(Assembly.GetExecutingAssembly()); kernel.Bind().To(); GlobalConfiguration.Configuration.ServiceResolver.SetResolver(new NinjectDependencyResolver(kernel)); return kernel; } protected […]

如何在mvc 4中自动将占位符属性添加到html输入类型编号?

这是一个非常具体的问题。 我设法通过使用名为EmailAddress.cshtml的编辑器模板自动将占位符属性添加到html5电子邮件输入类型,保存在~/Views/Shared/EditorTemplates/文件夹中。 请参阅以下代码: @Html.TextBox(“”, ViewData.TemplateInfo.FormattedModelValue, new { @class = “text-box single-line”, placeholder = ViewData.ModelMetadata.Watermark }) 它的工作原理是因为我在视图模型中使用了[DataType(DataType.EmailAddress)] DataAnnotation。 什么不起作用是我使用int? 变量。 public class MiageQuotaRequestViewModel { [Required] [DataType(DataType.EmailAddress)] [Display(Name = “Nombre de place demandées”, Prompt = “Nombre de place”)] [Range(0, 50, ErrorMessage = “La demande doit être comprise entre 0 et 50 places”)] public int? RequestedQuota { get; […]

asp.net mvc web api使用OData Patch进行部分更新

我正在使用HttpPatch来部分更新对象。 为了实现这一点,我使用OData的Delta和Patch方法(这里提到: 目前推荐的使用Web API执行部分更新的方法是什么? )。 一切似乎工作正常,但注意到映射器区分大小写; 当传递以下对象时,属性将获得更新的值: { “Title” : “New title goes here”, “ShortDescription” : “New text goes here” } 但是当我传递具有较低或驼峰式属性的相同对象时,Patch不起作用 – 新值不会通过,因此看起来反序列化和属性映射存在问题,即:“shortDescription”到“ShortDescription” ”。 是否有使用Patch忽略区分大小写的配置部分? 供参考: 在输出中,我使用以下格式化程序的camel-case属性(遵循REST最佳实践): //formatting JsonSerializerSettings jss = new JsonSerializerSettings(); jss.ContractResolver = new CamelCasePropertyNamesContractResolver(); config.Formatters.JsonFormatter.SerializerSettings = jss; //sample output { “title” : “First”, “shortDescription” : “First post!” } 然而,我的模型类遵循C#/ .NET格式约定: public […]

显示MVC中文件夹中的所有图像。 带着foreach

我想将我的文件夹“Images_uploads”文件夹中的所有图片显示到MVC视图中。 所以它在网站上显示。 但似乎没有任何作用.. { <List li = ViewData[“~/images_upload”] as List; foreach (var picture in li) }

为特定控制器操作选择自定义输出缓存提供程

我正在尝试实现MongoDB / Memory组合输出缓存提供程序以与MVC4一起使用。 这是我最初的实现: public class CustomOutputCacheProvider : OutputCacheProvider { public override object Get(string key) { FileLogger.Log(key); return null; } public override object Add(string key, object entry, DateTime utcExpiry) { return entry; } public override void Set(string key, object entry, DateTime utcExpiry) { } public override void Remove(string key) { } } 我的网络配置条目: 以及HomeController中的用法: [OutputCache(Duration […]

MVC 4客户端validation无效

试图学习ASP.net MVC的基础知识,并且不能理解为什么我的客户端validation不起作用。 我在我的web.config文件中都有这个(1是全局1在views文件夹中) 我在_layout.cshtmlfile中有这个 @Scripts.Render(“~/bundles/jquery”) @Scripts.Render(“~/Scripts/jquery.validate.unobtrusive.min.js”) @Scripts.Render(“~/Scripts/jquery.validate.min.js”) 这是我的测试注册的视图模型: public class RegisterVM { [Required(ErrorMessage=”Username Required”)] public string username { get; set; } [RegularExpression(@”((?=.*\d)(?=.*[az])(?=.*[AZ]).{6,20})”)] [Required(ErrorMessage=”Password Required”)] public string password { get; set; } [Compare(“password”, ErrorMessage=”Passwords do not match”)] public string passwordConfirm { get; set; } } 这是我的HTML @using(@Html.BeginForm()){ @Html.LabelFor( model => model.username) @Html.EditorFor( model => model.username) @Html.ValidationMessageFor( […]