Tag: asp.net mvc

更改整数的默认NumberStyles?

我有一个具有整数属性的模型。 使用23443提交模型时,模型绑定器工作正常,并且该操作中的值可用。 但是如果使用千位分隔符(如23,443 )提交模型,则不会解析该值,并且属性为零。 但是我发现一个十进制类型的属性可能有千位分隔符,它会解析并正确填充。 我发现默认情况下Int32.Parse()不解析千位分隔符但Decimal.Parse()确实允许千位分隔符。 我不想写支票,如: public ActionResult Save(Car model, FormCollection form) { Int32 milage; if(model.MyProperty == 0 && Int32.TryParse(form[“MyProperty”], NumberStyles.AllowThousands, CultureInfo.InvariantCulture, out milage) { model.MyProperty = milage; } else ModelState.AddModelError(“Invalid”, “Property looks invalid”); […] } 每次我处理这些领域。 它看起来很丑陋,并将所有validation移出模型属性。 将属性的类型更改为十进制只是为了使模型绑定工作似乎不是一个明智的想法。 当我查看模型绑定器时,看起来它正在使用TypeConverter来完成从字符串到类型的转换。 看起来Int32Converter使用带有NumberStyles.Integer Int32.Parse() 。 有没有办法改变Int32Converter的行为,以允许默认情况下解析千位分隔符? 也许在整个应用程序中覆盖Int32.Parse()上的默认NumberStyles ? 或者添加我自己的模型绑定器,用NumberStyles.AllowThousands解析整数NumberStyles.AllowThousands唯一/正确的行动方案?

C#库根据您自己的数据库,facebook,twitter,OpenIDvalidation用户,

我正在寻找一个开源的C#库,具有灵活的许可,可以在ASP.NET MVC应用程序中使用。 它应该能够根据本地数据库,facebook,twitter,OpenID或其他流行的身份validation方法对用户进行身份validation。 有这样的图书馆吗?

使用单个视图导出mvc模型

我有一个基本模型类NotificationBase和两个派生模型,GeneralNotification和ReleaseNotification。 public class NotificationBase { public int Id { get; set; } [Required] [StringLength(50, ErrorMessage=”Title must not exceed 50 characters.”)] public string Title { get; set; } [Required(ErrorMessage=”Type is required.”)] public int TypeId { get; set; } [Required(ErrorMessage=”Importance is required.”)] public int ImportanceId { get; set; } public DateTime Created {get; set; } [Required(ErrorMessage=”Start date […]

如何指定DbContext使用的表的名称

这是我之前提出的问题的后续问题 。 我的印象是,如果数据库中有多个表,则将使用DbSet变量的名称来标识该表。 然而,在链接的问题中,很明显DbContext正在选择Products表而不是Portfolio表,即使变量的名称是Portfolio 。 我仍然可以将变量名称更改为任何内容,我仍然可以获取数据。 所以我的问题是DbContext如何映射表? 我需要在项目中添加更多的表,并且不知道如何使用单个DbContext对象(或者我应该在同一个数据库中为单独的表使用单独的DbContext )?

WebApi中的C#await / async,重点是什么?

有人知道这样做的目的是什么? private async Task StoreAsync(TriviaAnswer answer) { … } [ResponseType(typeof(TriviaAnswer))] public async Task Post(TriviaAnswer answer) { var isCorrect = await StoreAsync(answer); return Ok(isCorrect); } 通过检查,它告诉它异步运行私有方法,但同步等待它结束。 我的问题是,这有什么意义吗? 或者这只是一种奇特而无用的技巧? 我在研究Web API / MVC / SPA的一些代码时遇到了这个问题。 无论如何,任何见解都会有用。

在构建期间设置web.config属性(而不是通过发布)

我正在尝试使用Web Setup Project部署应用程序。 我遇到的问题是web.config文件永远不会被转换。 根据这篇文章 ,按照设计,转换只发生在发布期间。 如果依次构建安装项目调用其他程序集构建命令,如何正确更新web.config属性?

SaveChangesAsync不更新数据库表中的值

这是我的表: 统计数据 Id,Depth,RefreshCounter 样本记录: Id Depth RefreshCounter 1 1 1 2 1 0 3 1 0 4 1 0 现在我需要做的是每当我刷新页面时,我需要在深度为1的数据库表中将此refreshcounter值增加1 。 我在加载浏览页面时调用此方法: @Html.Action(“IncrementRefreshcounter”, “Statistics”, new { id = 1}) //for eg:1,2,3,4 这是我的代码,它执行此操作: [ChildActionOnly] public ActionResult IncrementRefreshcounter(int id) { using ( var context = new MyDBContext()) { //at each page refresh i would be passing different […]

Razor中的简单html与扩展方法(首选项)

对于MVC Razor中的简单标签,您更喜欢使用简单的HTML还是使用扩展方法,例如 Male Or @Html.Label(“male”, “Male”) 我觉得有时候使用简单的HTML会更容易。 当你想做一些自定义代码时,扩展方法是有意义的。

附加类型为“X”的实体失败,因为同一类型的另一个实体已具有相同的主键值

错误信息 : 附加“FaridCRMData.Models.Customer”类型的实体失败,因为同一类型的另一个实体已具有相同的主键值。 如果图中的任何实体具有冲突的>键值,则在使用Attach()方法或将实体的状态设置为“未更改”或“已修改”时,可能会发生这种情况。 这可能是因为某些实体是新的并且尚未收到数据库生成的键值。 在这种情况下,使用“添加”方法或“已添加”实体状态来跟踪图形,然后根据需要将非新实体的状态设置为“未更改”或“已修改”。 我的代码: public class FactorController : Controller { public JsonResult SaveFactor(Factor factor,int id) { if (id > 0) { bool result = new FactorService.BaseService.Update(factor); return new JsonResult() { Data = result }; } } } FactorService.BaseService.cs: public bool Update(TEntity entity) { var entry = context.Entry(entity); if (entry.State == EntityState.Detached || […]

Web Api控制器无法识别Json方法

我有一个web api控制器 using sport.BLL.Abstract; using sport.BLL.Concrete; using sport.DAL.Entities; using sport.webApi.Models; using AutoMapper; using Microsoft.AspNet.Identity.EntityFramework; using System; using System.Collections.Generic; using System.Linq; using Microsoft.AspNet.Identity; using Microsoft.AspNet.Identity.Owin; using Microsoft.Owin.Security; using System.Net; using System.Net.Http; using System.Web.Http; using System.Web; using System.Web.WebPages.Html; namespace sport.webApi.Controllers { public class AccountManageController : ApiController { [HttpPost] public System.Web.Mvc.ActionResult CreateAccount(CollaborateurModel item) { var user = new […]