Articles of asp.net mvc 4

访问T4模板中的自定义属性(VS2012 MVC4)

我正在尝试访问我的自定义属性,如我正在编写的T4控制器模板中附加到我的模型属性的SortableAttribute 。 我已经将List.tt中的类块,程序集和导入复制为样板文件。 首先,我尝试按如下方式转换属性: 然而,这并没有产生积极的结果,因为我的项目命名空间对T4来说是未知的。 为了解决这个问题,我添加了项目的dll并导入了所需的命名空间。 它起初似乎很成功(例如,命名空间导入没有错误),但它仍然没有找到我的属性。 如果我用MyProject.Filters.SortableAttribute替换SortableAttribute ,则错误消息是在MyProject.Filters找不到SortableAttribute 。 为了解决这个问题,我改变了我的代码如下: 我以为我已经中了大奖,但我很快就意识到这个property.GetCustomAttributes(true)返回所有属性但不是我的…… 示例模型: public class MyModel { [Key] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public int Id { get; set; } [Required] [Display(Name = “Full Name”)] [Sortable] public int Name { get; set; } } SortableAttribute实现: using System; namespace MyProject.Filters { [AttributeUsage(AttributeTargets.Property)] public class SortableAttribute : Attribute { public SortableAttribute(string […]

使用MVC模型显示只读文本

我有一个MVC模型,其属性定义为: [DisplayName(“Service Version”)] public string ServiceVersion { get; set; } 在屏幕上,我希望它显示为: 服务版本: 0.1 ‘ServiceVersion’具有版本号。 在视图中,我有: @model Main_UI.Models.HomeModel 然后: @Html.LabelFor(m=>m.ServiceVersion) @Html.DisplayText(Model.ServiceVersion) 这是不正确的,因为我没有为值部分显示任何内容。 出现标签,但没有版本号。 我究竟做错了什么? 编辑:更改 @ Html.DisplayText(Model.ServiceVersion) ,只是 @ Model.ServiceVersion 修好了。 这是正确的方法吗?

名称ViewBag在当前上下文mvc 4中不存在

我的强类型视图存在问题。 我尝试了所有可能的事情,并且读了很多关于web.config相关的内容。 我找不到问题了。 以下是从视图。 @model IEnumerable @{ ViewBag.Title = “Home”; } 我的域实体RoomsForRent.Domain.Entities.Room显示未知元素。 ViewBag,@ model显示不存在。 来自web.Config的观点。 请问有什么我想念的吗? 我最近删除并重新启动项目,但显示相同的错误。 我很迷惑。

ControllerContext为null

我有这个MVC4控制器( ControllerB ): public class MyControllerB : Controller { public bool Check(string actionName, ControllerBase controllerBase) { ControllerContext controllerContext = new ControllerContext(this.ControllerContext.RequestContext, controllerBase); … } } 我从“ControllerA”调用ControllerB的Check方法,如下所示: bool b = new MyControllerB().Check(“Index”, this); 我Object reference not set to an instance of an object因为this.ControllerContext为null。 如果我将Check方法移动到ControllerA,它可以正常工作。 但我需要这种方法在不同的控制器中。 如何修复我的代码,以便“this.ControllerContext`不会为空?

无法添加控制器

我是MVC Web应用程序开发的新手。 我在添加模型和DbContext类后尝试添加控制器。 但是,当我尝试使用Entity框架的这个控制器时,它给了我一个错误 Unable to cast object of type ‘System.Data.Entity.Core.Objects.ObjectContext’ to ‘System.Data.Objects.ObjectContext’ 我使用的是EF-6.1.1 (最新更新) 以下是我的模型和上下文类.. public class EmpDetails { [Key] public int Id { get; set; } public string EmpId { get; set; } public string EmployeeName { get; set; } } public class ModelContext : DbContext { public DbSet Employee { get; set; […]

MVC 4编辑控制器/查看多对多关系和复选框

我正在使用ASP.NET MVC 4和Entity Framework,我正在寻找一些方法来创建多个关系和我的数据库中的复选框,用于创建/编辑控制器和视图,我已经找到了@Slauma答案的答案在MVC 4中创建- 多对多关系和复选框但是,我真的很想看到它如何扩展到编辑和删除function以及此解决方案中的其他一些合作伙伴。 有人可以请说明如何在Edit控制器方法中填充ClassificationSelectViewModel以获取“已选中”和“未选中”值吗? 这是一个Matt Flowers问题,也将解决我的问题。

MVC4使用什么加密?

我们如何找出MVC4使用的加密方式? 我注意到有一个SALT选项,但似乎也没有在WebSecurity()模块中使用。 我想知道使用的标准,以及是否可以轻松升级到最新的SHA

ASP.NET MVC多个虚拟路径捆绑带CDN

我正在尝试使用ASP.NET MVC 4添加一些支持CDN的捆绑包。目的是在同一数据中心托管的许多其他站点在本地共享内容 第一次尝试是: bundles.Add(new ScriptBundle(“~/bundles/jquery”, “http://mysite/Content/js/”).Include( “http://mycdnsite/Content/js/jquery.unobtrusive-ajax.min.js”, “http://mycdnsite/Content/js/jquery-migrate-1.2.1.js”, “http://mycdnsite/Content/js/jquery-{version}.js”)); 不幸的是,这是不可能的,因为virtualPath必须是相对的(只允许应用程序相对URL(〜/ url)) 然后我试过这个: bundles.Add(new ScriptBundle(“~/bundles/jquery”, “http://mycdnsite/Content/js/”).Include( “~/jquery.unobtrusive-ajax.min.js”, “~/jquery-migrate-1.2.1.js”, “~/jquery-{version}.js”)); 但它没有奏效,即使启用CDN: BundleTable.EnableOptimizations = true; bundles.UseCdn = true; 是否可以使用CDN创建多个内容包?

在Asp.Net Web API中实现自定义模型绑定器时出错

我坚持这个非常奇怪的问题。 我有一个名为AttendanceController的API控制器派生自APIControllerFA ,它来自ApiController 这是代码 public class AttendanceController : ApiControllerFA { public HttpResponseMessage PostAttendance([ModelBinder(typeof(AttendanceRegistrationModelBinder))]AttendanceRegistrationModel model) { //checking model state for errors //throw new Exception(“Just to throw an error “); ……….. 从PostAttendance方法可以看出,我有一个名为AttendenceRegistrationModelBinder的自定义ModelBinder ,这是代码 public class AttendanceRegistrationModelBinder : DefaultModelBinder { protected override void BindProperty(ControllerContext controllerContext, ModelBindingContext bindingContext, System.ComponentModel.PropertyDescriptor propertyDescriptor) { if (propertyDescriptor.Name == “formJson”) { string val = […]

‘/’应用程序中的服务器错误。 System.Web.Http.WebHost

我正在尝试发布ASP.NET MVC 4 Internet应用程序。 发布后,我继续点击我网站的链接,找到: ‘/’应用程序中的服务器错误。 无法加载文件或程序集’System.Web.Http,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35’或其依赖项之一。 该系统找不到指定的文件。 描述:执行当前Web请求期间发生未处理的exception。 请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。 exception详细信息: System.IO.FileNotFoundException:无法加载文件或程序集’System.Web.Http,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35’或其依赖项之一。 该系统找不到指定的文件。 来源错误: 在执行当前Web请求期间生成了未处理的exception。 可以使用下面的exception堆栈跟踪来识别有关exception的起源和位置的信息。 程序集加载跟踪:以下信息有助于确定无法加载程序集“System.Web.Http,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35”的原因。 警告:assembly绑定日志记录已关闭。 要启用程序集绑定失败日志记录,请将注册表值[HKLM \ Software \ Microsoft \ Fusion!EnableLog](DWORD)设置为1.注意:程序集绑定失败日志记录会导致一些性能损失。 要关闭此function,请删除注册表值[HKLM \ Software \ Microsoft \ Fusion!EnableLog]。 堆栈跟踪: [FileNotFoundException:无法加载文件或程序集’System.Web.Http,Version = 4.0.0.0,Culture = […]