Tag: asp.net mvc 2

在ASP.NET中使用线程有任何非明显的危险吗?

对于这个程序员的问题,这是一个兄弟问题 。 简而言之,我们正在考虑将一些支持用户请求的工作推送到后台“正确”。 如果我们选择服务路线,这个相关的问题给了我很多想法,但是我们确实没有真正提供任何令人信服的论据。 我会承认,对我来说,做道德等同的能力 WorkQueue.Push(delegate(object context) { … }); 真的很引人注目,所以如果它有点困难(而不是天生就不可行),我倾向于采用后台线程方法。 所以,我知道的后台线程问题(在AppPool的上下文中): 由于AppPool被回收,它们可能随时死亡 解决方案:跟踪任务执行的时间,因此可以重新运行*如果需要新线程 ThreadPool用于响应传入的HTTP查询,因此使用它可能会使IIS饿死 解决方案:构建我们自己的线程池,同时限制线程数。 我的问题是,如果有的话,我错过了什么? 在ASP.NET中使用后台线程会出现什么问题? *问题中的任务已经安全重新运行,所以这不是问题。 ǂ假设我们没有做任何真正愚蠢的事情,比如在后台线程中抛出exception。

具有服务层,业务层和entity framework的N层架构

只是想要一些反馈/帮助我正在构建我的应用程序的方式。 我目前的解决方案结构如下所示: UI(实际MVC应用程序) 核心(仅控制器和ViewModels) 服务 BLL 数据(entity frameworkDbContext,映射到Domain对象) 域(简单POCO对象) 接口 其他的东西 Ninject将DbContext注入Controller(每个请求) AutoMapper将域对象映射到ViewModel 所有程序集都引用了Interfaces项目,顾名思义,它只不过是简单的接口(即IDbContext,IRepository等)。 服务项目将所有其他项目“联系在一起”。 它是唯一一个直接引用数据访问层(entity framework)的程序集。 我在下面提供了一些代码: Controller的示例如下所示: namespace Core.Controllers { public class HomeController : Controller { private IDbContext dbContext; public HomeController(IDbContext dbContext) { this.dbContext = dbContext; } public ActionResult Users() { UserService userService = new UserService(dbContext); var users = userService.GetAllUsers(); return View(Mapper.Map<IEnumerable>(users)); } […]

如何实现历史版本控制?

我们正处于构建SQL 2008 R2上的大型C#MVC2应用程序(我们还将Sharp架构和Nhibernate作为生态系统的一部分)的早期阶段,其中一个要求是所有数据库行版本都可以在给定的时间内访问历史。 我们玩弄了类似于以下布局的想法: id(PK) 的recordId VERSIONID 并且使用相同的recordId和增加的versionId创建新记录中的每个编辑记录结果。 然后记录显示将按照SELECT … WHERE recordId = X AND versionId = MAX(versionId)的内容完成。 每个事务的快照都不起作用(太多了?并且无法从应用程序中轻松访问)。 但我们很好奇其他实施方案是否成功,或者我们的提案存在潜在问题。

MVC和EditorFor宽度

我可以在View上设置EditorFor控件的宽度吗? 我设置了一些参数: [Required, DisplayName(“Payee Name”), StringLength(50)] public string Name { get; set; } 但是,我似乎无法设置渲染的文本框的宽度。 m.Name)%> m.Name)%> 这可以以某种方式完成吗? 我试过了: m.Name, new {width=50)%> 但没有快乐……

ASP.Net MVC2 DropDownListFor

我试图在一个项目中学习MVC2,C#和Linq到实体(是的,我很生气)我遇到了DropDownListFor的一些问题并将SelectList传递给它。 这是我的控制器中的代码: public ActionResult Create() { var Methods = te.Methods.Select(a => a); List MethodList = new List(); foreach (Method me in Methods) { SelectListItem sli=new SelectListItem(); sli.Text = me.Description; sli.Value = me.method_id.ToString(); MethodList.Add(sli); } ViewData[“MethodList”] = MethodList.AsEnumerable(); Talkback tb = new Talkback(); return View(tb); } 我试图让DropDownListFor在ViewData获取MethodList ,我遇到了麻烦。 当我尝试: model.method_id,new SelectList(“MethodList”,”method_id”,”Description”,Model.method_id)) %> 它出错以及以下消息 DataBinding: ‘System.Char’ does […]

ASP.NET MVC Url.Action和路由名称值

我正在使用asp.net mvc 2并根据路线创建本地化。 我的路线如下: {culture}/{controller}/{action} 我去我的家庭控制器: en/Home/Index 我的家庭控制器视图有一个到其他控制器的链接: <a href='https://stackoverflow.com/questions/7938332/asp-net-mvc-url-action-and-route-name-value/’ >Products <a href='https://stackoverflow.com/questions/7938332/asp-net-mvc-url-action-and-route-name-value/’ >About 第一个链接生成代码: /en/Products/Prods但第二个生成: /Home/Index 当我在参数动作中传递值Index时,我无法理解为什么Url.Action跳过{culture} route参数? 我究竟做错了什么? 路线配置: routes.IgnoreRoute(“{resource}.axd/{*pathInfo}”); routes.MapRoute(“Login”, // Route name “{controller}/Index”, // URL with parameters new { controller = “Login”, action = “Index” } // Parameter defaults ).RouteHandler = new SingleCultureMvcRouteHandler(); routes.MapRoute(“Default”, // Route name “{controller}/{action}/{id}”, // URL with […]

如何在C#和DataAnnotation中创建通用的UniqueValidationAttribute?

我正在尝试使用System.ComponentModel.DataAnnotations.ValidationAttribute创建UniqueAttribute 我希望这是通用的,因为我可以传递Linq DataContext,表名,字段并validation传入值是否唯一。 这是一个不可编译的代码片段,我现在卡在这里: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ComponentModel.DataAnnotations; using System.Data.Linq; using System.ComponentModel; namespace LinkDev.Innovation.Miscellaneous.Validation.Attributes { public class UniqueAttribute : ValidationAttribute { public string Field { get; set; } public override bool IsValid(object value) { string str = (string)value; if (String.IsNullOrEmpty(str)) return true; // this is where I’m stuck return […]

Windows Azure的http重定向的最佳实践

我有一个名为azure的azure色网站: http://myapp.cloudapp.net 当然这个URL有点难看,所以我设置了一个将http://www.myapp.com指向azure url 的CNAME 。 一切都很好,直到这里,但有一个障碍。 http://myapp.cloudapp.net已泄露出来,现在被谷歌索引并存在于其他网站上。 我想将myapp.cloudapp.net的任何请求永久重定向到www.myapp.com的新家 我的网站是用MVC.Net 2.0编写的,因为这是一个azure色的应用程序,没有用于访问IIS的UI,所有内容都需要在应用程序代码或web.config中完成。 什么是设置永久重定向的简洁方法,如果它进入web.config或全局控制器?

将NServiceBus与Asp.Net MVC 2一起使用

有没有办法在Asp.Net MVC 2中使用NServiceBus? 我想从Asp.Net MVC2应用程序向服务发送请求消息,该服务处理消息并回复响应消息。 有没有办法清楚地做到这一点?

从视图模型到域模型的最佳映射位置在哪里?

从视图模型到域模型的映射的最佳位置在哪里? 通过映射,我的意思是从我的EditGrantApplicationViewModel到GrantApplication对象。 让我们说我有以下动作方法(部分代码): [HttpPost] public ActionResult Create(EditGrantApplicationViewModel editGrantApplicationViewModel) { if (!ModelState.IsValid) { return View(“Create”, editGrantApplicationViewModel); } return View(“Index”); } 我是否需要将editGrantApplicationViewModel传递给服务层方法并在方法中进行映射?