Tag: asp.net mvc 5

带有entity framework的ASP .NET MVC 5中的并发性

我正在使用Entity Framework在ASP .NET MVC 5中使用简单的CMS。 我对MVC应用程序中的并发性有一些疑问。 首先 – 我的应用程序的公共部分(没有任何身份validation的用户部分): 所有数据(post,类别信息,标签,文档)都存储在DB中(使用实体) 在公共部分的控制器中,只有DB的读取或写入数据,而不是删除或编辑 所以我的第一个问题 – 是否有必要采用一些机制来避免公共部分的并发性危险? 当多个用户同时浏览我的网站时,一切都会正确吗? 然后我的管理部分(需要validation): 可能有多个用户具有多个角色(但实际上只有很少的注册用户) 用户可以在DB中创建/编辑/删除数据 我知道有一些安全机制对于拥有安全系统是必要的,但是你能帮我解决这个问题吗? 我也在每个方法中使用这种模式用于DbContext,其中DB是必需的: using (var db = new CmsContext()) { // other stuff here } 而不是在所有方法中使用的一个类变量db。 这是正确的吗? 非常感谢您的回答!

向Identity users表添加软删除

我已将删除的列添加到我的Users表中,但显然注册Identity框架提供的新用户方法仍然会在数据库中看到这些用户,有没有办法告诉它忽略某个列? 注册 // this needs to ignore any DeletedAt where not null var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { … } 在登录 // this needs to ignore any DeletedAt where not null result = await SignInManager.PasswordSignInAsync( user.UserName, model.Password, model.RememberMe, shouldLockout: true ); …还有任何其他外部登录事件需要告知列。

ASP.NET MVC GetFullHtmlFieldId没有返回有效的id

我已经看过了,但它并没有帮助我 GetFullHtmlFieldId返回不正确的id属性值 ASP.NET GetFullHtmlFieldId没有返回有效的id 问题 基本上我有以下问题: 我有一个自定义validation属性,需要获取控件的fieldId public class MyValidationAttribute : ValidationAttribute, IClientValidatable { //…… Collapsed code public IEnumerable GetClientValidationRules(ModelMetadata metadata, ControllerContext context) { ViewContext vwContext = context as ViewContext; var fieldId = vwContext.ViewData.TemplateInfo.GetFullHtmlFieldId(metadata.PropertyName); //…… Collapsed code yield return clientValidationRule; } //…… Collapsed code } GetFullHtmlFieldId的结果取决于我如何构建我的asp.net mvc页面: // Edit.cshtml or Create.cshtml @Html.EditorFor(model => model.MyBoolProperty) // […]

如何在ASP.NET MVC应用程序的Razor-engine中使用Html.Displar渲染ModelMetadata对象?

我正在尝试利用razor-engine中的DisplayTemplatesfunction自动渲染我的显示视图。 我扫描我的Model ,为我想要显示的每个属性找到正确的ModelMetadata 。 但我无法正确使用Html.DisplayFor呈现属性。 我试图像这样展示我的财产 // First I find the ModelMetadata for the property // I call this statement in a loop and each iteration I pass a different PropertyName to get the correct model ModelMetadata columnMetadata = elementsMetadata.First(x => x.PropertyName == column.PropertyName); // I attempted to render the columnMetadata object like so Html.DisplayFor(x […]

基于没有键定义mvc5的类

我尝试从这个控制器添加视图。 我只需要这个视图来显示不是插入或更新或删除的数据 public ActionResult Index() { var CartObj = ShoppingCart.GetCart(this.HttpContext); var classshop = new New { CartItems = CartObj.GetCartItems(), CartTotal = CartObj.GetSum() }; return View(classshop); } namespace MusicStore.Models { public class ShoppingCart { MusicStoreEntities dbo = new MusicStoreEntities(); string ShoppingCartID { get; set; } public const string CartSessionKey = “CartId”; public static ShoppingCart GetCart(HttpContextBase Context) […]

POST到MVC控制器当我没有按顺序选中复选框时,IEnumerable嵌套模型为null

当我试图在Post中获取值时,当我不按顺序(1,2,3等)检查时,复选框的值被设置为NULL。 我需要选择任何顺序(即4,5)。 模型: public class AssignUsersViewModel { [Display(Name = “Check to select”)] public bool Select { get; set; } public int Id { get; set; } [Display(Name = “App. Username”)] public string UserName { get; set; } [Required] public string GivenName { get; set; } [Required] public string Surname { get; set; } [Display(Name = […]

entity framework种子不起作用

我在我的web.config上有这个。 Global.asax APplication Start Database.SetInitializer(new AppDataContextInitializer()); AppDataContextInitializer.cs public class AppDataContextInitializer : System.Data.Entity.CreateDatabaseIfNotExists { protected override void Seed(AppDataContext context) { #region Seed Modules context.ModuleList.Add(new Module() { Id = 1, ModuleName = “Contabilidad”, FontAwesomeClass = “ambulance” }); context.ModuleList.Add(new Module() { Id = 2, ModuleName = “Recursos Humanos”, FontAwesomeClass = “heartbeat” }); context.ModuleList.Add(new Module() { Id = 3, […]

在ASP.Net MVC中删除记录的安全方法

我想从我的ASP.Net MVC 5网站上删除一个产品。 我想知道添加[AntiForgeryToken]和[Authorize]是否足以保护删除操作? 视图 Delete: @Model.Name @using (Html.BeginForm(“Delete”, “ProductController”, FormMethod.Post, new { ProductId = Model.ProductId })) { @Html.AntiForgeryToken() Delete } 调节器 [HttpPost] [Authorize] [ValidateAntiForgeryToken] public ActionResult Delete(long ProductId) { /* Do I need to check if the logged in User has permission to delete the product? var product = ProductRepository.Get(Id); if (product.Creator == User.Identity.GetUserId()) […]

将所有区域,控制器和动作作为树

我需要将已注册为列表的所有区域及其所有控制器作为子列表和操作相同的内容。 像这样的东西: AdminArea HomeController Index Add … OtherController … AnotherArea HomeController Index … … 我已经检查了这个问题的答案, 这个问题,但它们并不是我想要的。 第一个返回已注册的所有路由,第二个返回所有控制器。 更新 好吧,使用下面的代码,我可以得到所有的区域和第二个问题的答案,我可以得到所有的控制器,但我无法弄清楚每个控制器属于哪个区域。 var areaNames = RouteTable.Routes.OfType() .Where(d => d.DataTokens != null && d.DataTokens.ContainsKey(“area”)) .Select(r => r.DataTokens[“area”]).ToList() .Distinct().ToList();

如何在ASP.NET MVC 5中插入主 – 详细信息表

我在DB中有Orders表和OrderDetails表。 使用Entity Framework 6,我获得了一个模型,因此我可以从中生成类。 我还从Orders表生成了控制器和视图。 Orders folio (PK) date customer (FK) OrdersDetail folio (FK) — to the Orders table product (FK) price quantity 生成的“创建发布”操作如下: [HttpPost] [ValidateAntiForgeryToken] public ActionResult Create([Bind(Include = “folio,date,customer”)] Orders order) { if (ModelState.IsValid) { db.Orders.Add(order); db.SaveChanges(); return RedirectToAction(“Index”); } ViewBag.cliente = new SelectList(db.CATCTES, “COD_CTE”, “NOM_CTE”, order.cliente); return View(order); } 没关系,但我也需要插入到其他实体/表中! 我已经更改了Create.cshtml表单,其中包含Orders表所需的字段,并包含OrdersDetail的某种网格。 每行都是OrdersDetail表的新条目。 […]