Tag: asp.net mvc 3

当Ninject用作依赖项解析器时,如何在asp.net mvc3 App中处理DbContext(或对象)

对于这个Demo,我创建了一个虚假的Database +存储库,如下所示 假Db +存储库 public interface IDemoRepository { string[] GetUsers(); } public class DemoRepository : IDemoRepository, IDisposable { public string[] GetUsers() { string[] Users = { “Robert”,”Linda”,”Jack”}; return Users; } public void Dispose() { //do nothing throw new Exception(“Disposed is called”); } } 我的控制器看起来如此 public class TestController:Controller { protected IDemoRepository _repository; public BaseController(IDemoRepository repository) { […]

使用数据注释限制DateTime值

我的模型中有这个DateTime属性: [Required(ErrorMessage = “Expiration Date is required”)] [DataType(DataType.Date)] [DisplayFormat(DataFormatString = “{0:MM/dd/yyyy}”, ApplyFormatInEditMode = true)] [DisplayName(“Expiration Date”)] public DateTime? ExpirationDate { get; set; } 我希望validation此属性,以便用户无法输入今天之前发生的日期。 如果我validation一个整数,我可以这样做。 [Range(1, int.MaxValue, ErrorMessage = “Value must be greater than 0”)] 但range属性不支持DateTime对象。 DateTime值有这样的东西吗?

在ASP.NET MVC3中validation表单时,是否有任何方法可以忽略某些属性(在POCO上)?

我有一个注册向导用于新用户注册。 当我尝试转到第二页时,我收到validation错误,因为我的User对象尚未完全填充。 有什么办法可以告诉每个ActionMethod在检查ModelState.IsValid检查时忽略一些属性吗? 例如。 (简体,pseduo代码) public class User { [Required] public string Name; // Asked on page 1. [Required] public int Age; // Asked on page 1. [Required] public string Avatar; // Asked on Page 2. } 它抱怨说阿凡达是必需的/不能为空。 但我没有机会要求用户填写此内容,直到下一页。 在第1页中是否可以要求忽略此检查?

测量ASP.NET MVC 3的性能

我在ASP.NET MVC 3中构建了一个JSON服务,我希望能够测量应用程序中操作的执行时间(我希望它能够自动记录慢速操作)。 因此看起来很棒; http://coderjournal.com/2010/10/timing-the-execution-time-of-your-mvc-actions/ (这里有关于堆栈溢出的地方也提到了) 问题是我得到的测量结果必然是错误的; 我添加了另一个秒表,它启动动作中的第一件事并在返回前停止。 例: 方法里面的秒表=> 10ms (这里省略了序列化到json,所以我可以理解它比实际更短) 秒表属性(上面的代码)=> 676ms Firefox称该请求耗时=> 70ms 。 我相信firefox在这里有正确的时间(但它包含下载所以它有点大),但我想了解为什么属性代码不起作用,对此有什么想法?

在MVC3中的每个Action之前运行一个方法

如何在MVC3中运行每个Action之前运行一个方法? 我知道我们可以使用以下方法进行OnActionExecuting : public class ValidateUserSessionFilterAttribute : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { … } } 但是,我们怎样才能在ActionExecuting之前运行一个方法?

将null赋给可空int时出错 – “值’null’对于属性无效”

我在我的视图模型中有这个属性: [DisplayName(“Region”)] public int? RegionId { get; set; } 我将我的视图模型传递给我的控制器,如果RegionId为null,它在ModelState.IsValid失败。 如果我传递一个整数,它可以正常工作。 错误消息是: 值’null’对Region无效 在检查ModelState.IsValid之前,我也试过调用它,但是我得到了同样的错误: if (viewModel.RegionId == null) viewModel.RegionId = (int?)null; 这有什么问题? 为什么我不能将null赋给可以为空的东西?

ASP.NET MVC 3 – microsoft-web-helpers v1.1的问题

我从nuget升级了我的microsof-web-helpers包,它本身依赖于facebook和twitter API。 现在当我的应用程序尝试运行时,我收到以下错误: 编译器错误消息:CS0246:找不到类型或命名空间名称’SimpleMembershipProvider’(您是否缺少using指令或程序集引用?) Source Error: Line 216: } Line 217: Line 218: private static SimpleMembershipProvider GetMembershipProvider() { Line 219: var provider = Membership.Provider as SimpleMembershipProvider; Line 220: Source File: c:\Users\jp\documents\visual studio 2010\projects\myproj\myproj\App_Code\Facebook.cshtml Line: 218 我想知道是否有人遇到过这个问题,可以告诉我是否需要在项目中添加任何其他引用,或者更糟糕的是,在我的应用程序中创建一个虚拟的SimpleMembershipProvider。 我对更新facebook代码犹豫不决,因为无论何时我从nuget获得最新的microsoft-web-helpers我都会被迫维护这个文件。 谢谢 J.P

MVC3 – 正在缓存AJAX部分视图……我无法阻止它

我正在使用MVC3 – 我有一个javascript函数,它使用jQuery get()从控制器获取PartialView。 问题是它被缓存,我不断回收陈旧的内容。 我已经在动作上尝试了[OutputCache(Duration = 0)],认为它会阻止它的缓存,但没有快乐。 可能是客户端缓存它吗? 编辑: 我最近一直在使用另一种方法来防止缓存,这可能对某些人有用。 $.get(“/someurl?_=”+$.now(),function(data) { // process data }); 它显然不是那么干净,但因为每个请求都传递_=12345678 (时间戳),所以它永远不会被缓存。 希望能帮助到你。

如何安全地存储和访问连接字符串详细信息?

我目前正在开发一个ASP.NET MVC网站,我已经达到了一个需要将数据库集成到网站中的地步。 通常,我只需将适当的连接字符串添加到Web.config文件中: 但是,如果我将用户ID和密码保留在Web.config ,那么显然存在一个明显的安全漏洞,尤其是在源代码控制下。 简而言之:如何在不公开显示连接字符串详细信息的情况下存储它?

EF 4:如何使用具有存储库模式的MVC正确更新DbContext中的对象

我正在尝试使用DBContext的ChangeTracker对象实现AuditLog,我遇到了DbEntityEntry.OriginalValues被消灭并被DbEntityEntry.CurrentValues替换的DbEntityEntry.CurrentValues 。 我注意到问题是我如何更新DbContext中正在跟踪的对象(原始post: entity frameworkDbContext SaveChanges()OriginalValue不正确 )。 所以现在我需要一些帮助,以正确的方式使用MVC 3中的存储库模式更新持久化对象与entity framework4.此示例代码改编自Apress推出的Pro Asp.NET MVC 3框架书中的SportsStore应用程序。 这是我在AdminController中的’编辑’post操作: [HttpPost] public ActionResult Edit(Product product) { if (ModelState.IsValid) { // Here is the line of code of interest… repository.SaveProduct(product, User.Identity.Name); TempData[“message”] = string.Format(“{0} has been saved”, product.Name); return RedirectToAction(“Index”); } else { // there is something wrong with the data values […]