Tag: asp.net mvc 5

被动属性和嵌套容器

最终解决方案 在@ NightOwl888的答案的帮助下,这是我最后的方法,对于任何最终到此的人: 1)添加了全局filter提供程序: public class GlobalFilterProvider : IFilterProvider { public IEnumerable GetFilters(ControllerContext controllerContext, ActionDescriptor actionDescriptor) { var nestedContainer = StructuremapMvc.StructureMapDependencyScope.CurrentNestedContainer; foreach (var filter in nestedContainer.GetAllInstances()) { yield return new Filter(filter, FilterScope.Global, order: null); } foreach (var filter in nestedContainer.GetAllInstances()) { yield return new Filter(filter, FilterScope.Global, order: null); } foreach (var filter in nestedContainer.GetAllInstances()) { […]

没有ASP.NET标识的OWIN cookie身份validation

我是ASP.NET MVC 5的新手,我发现身份认证+授权框架非常不舒服。 我知道这是ASP.NET MVC框架的一个新function,所以我想在我的应用程序中应用另一种方法来实现身份validation。 可能吗? 我读过我可以使用FormsAuthenticationModule 。 这是一个很好的选择吗? 如何在基于MVC 5的应用程序中使用它?

unit testingASP.NET MVC5应用程序

我正在通过添加一个新属性来扩展ApplicationUser类(如教程中所示, 使用Facebook和Google OAuth2和OpenID登录创建一个ASP.NET MVC 5应用程序(C#) ) public class ApplicationUser : IdentityUser { public DateTime BirthDate { get; set; } } 现在我想创建一个unit testing来validation我的AccountController是否正确保存了BirthDate。 我创建了一个名为TestUserStore的内存用户存储 [TestMethod] public void Register() { // Arrange var userManager = new UserManager(new TestUserStore()); var controller = new AccountController(userManager); // This will setup a fake HttpContext using Moq controller.SetFakeControllerContext(); // Act var result […]

基于Http Header值的ASP.NET MVC5 / 6路由

假设我有一个最基本的控制器 public class HomeController : Controller { public ActionResult Index(string id, string language) { return View(); } } 其中包含2个参数。 但是,有一个要求是调用action方法的客户端应该从URL传递id值,而从http头传递language值。 这意味着url应该是/Home/Index/12345 ,同时调用客户端将设置一个Http Header值language : en 。 如何在MVC5或MVC6中设置路由以达到要求? 请不要提供Web Api的样本。 谢谢

一个MVC表单上的多个表单,使用循环创建,只有第一个提交数据

我有以下代码,只有第一个表单提交任何内容,以下提交null值,每个模型都有数据。 如果我将其更改为一个大表单,则所有内容都会提交。 为什么其他个人forms会发布空值? 视图 @model myModel[] @for (int i = 0; i < Model.Length; i++) { using (Html.BeginForm("controllerAction", "Controller", FormMethod.Post, new { id="Form"+i })) { @Html.TextBoxFor(a => a[i].property1) @Html.CheckBoxFor(a => a[i].property2) @Html.HiddenFor(a => a[i].property3) } } 调节器 [HttpPost] public ActionResult controllerAction(myModel[] models) { …do stuff… }

ASP.NET Boilerplate – 为MVC和EF组合构建新项目时出错

我今天刚刚下载了MVC5和EF的免费启动模板。 在打开,恢复所有包然后构建时,我在“核心”项目中得到以下构建错误: 错误CS0508’AppSettingProvider.GetSettingDefinitions(SettingDefinitionProviderContext)’:返回类型必须是’IEnumerable’才能匹配被覆盖的成员’SettingProvider.GetSettingDefinitions(SettingDefinitionProviderContext)’ 错误CS0012“对象”类型在未引用的程序集中定义。 您必须添加对程序集’netstandard,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = cc7b13ffcd2ddd51’的引用。 正如错误消息所示,我添加了对程序集的引用,但是,它产生了许多其他错误。 查看示例项目,他们正在使用APB程序集的v2.1.3并且编译正常。 最新下载的示例使用APB程序集的v3.0.0。 任何有助于实现这一目标的帮助表示赞赏。 提前致谢。

远程需要HTTPS MVC 5

我有以下属性,以确保远程站点页面以https模式打开。 public class RemoteRequireHttpsAttribute : RequireHttpsAttribute { public override void OnAuthorization(AuthorizationContext filterContext) { if (filterContext == null) { throw new ArgumentException(“Filter Context”); } if (filterContext != null && filterContext.HttpContext != null) { if (filterContext.HttpContext.Request.IsLocal) { return; } else { string val = ConfigurationManager.AppSettings[“RequireSSL”].Trim(); bool requireSsl = bool.Parse(val); if (!requireSsl) { return; } } } base.OnAuthorization(filterContext); […]

从自定义AdditionalMetadataAttribute访问模型类实例(asp.net mvc 5)

我有以下情况 – 我需要编写一个自定义的附加元数据属性,该属性基于另一个属性值(来自同一模型),向AdditionalValues字典添加一个值。 现在,我的问题是我无法访问属性类中的模型实例。 [AttributeUsage(AttributeTargets.Property)] public class ExtendedAdditionalMetadataAttribute : Attribute, IMetadataAware { #region Private properties private string extraFieldToCheck { get; set; } private string extraFieldValueToCheck { get; set; } private string fieldToBeAdded { get; set; } private string fieldValueToBeAdded { get; set; } #endregion #region Constructor public ExtendedAdditionalMetadataAttribute(string extraFieldToCheck, string extraFieldValueToCheck, string fieldToBeAdded, string fieldValueToBeAdded) […]

使用AutoMapper从MVC中的ViewModel更新实体

我有一个Supplier.cs实体及其ViewModel SupplierVm.cs 。 我正在尝试更新现有供应商,但我收到黄色死亡屏幕(YSOD),并显示错误消息: 操作失败:无法更改关系,因为一个或多个外键属性不可为空。 当对关系进行更改时,相关的外键属性将设置为空值。 如果外键不支持空值,则必须定义新关系,必须为外键属性分配另一个非空值,或者必须删除不相关的对象。 我想我知道它为什么会发生,但我不知道如何解决它 。 这是一个关于正在发生的事情的截屏video 。 我认为我收到错误的原因是因为当AutoMapper做它的事情时,这种关系就会丢失。 码 以下是我认为相关的实体 : public abstract class Business : IEntity { public int Id { get; set; } public string Name { get; set; } public string TaxNumber { get; set; } public string Description { get; set; } public string Phone { get; […]

MVC 5 Code First脚手架,关系简单

我正在做一些实验性编程以赶上ASP MVC。 我为包含房间的建筑物创建了一个项目。 一个非常简单的一对多关系。 我试图让脚手架工作,并从旧的MVC示例看起来这应该工作。 但是,Rooms中的BuildingId字段未映射到建筑模型 – 视图中没有选择列表。 我的模特是: namespace BuildingManagement.Models { public class Building { public int Id { get; set; } [Required] public string Name { get; set; } public string Address { get; set; } public string Street { get; set; } public string City { get; set; } public string Province […]