Tag: asp.net mvc

如何使用Nhibernate在asp.net mvc中实现session-per-request模式

我在global.asax文件的Application_start事件中创建了nhibernate会话,该会话被传递给服务方法的构造函数。 在服务方法我使用会话来做CRUD操作,这很好。但是,当多个请求或并行事务发生时,nhibernate会抛出一些exception。阅读论坛后我才知道Nhibernate会话不是线程安全的。如何使它的线程安全,让我的应用程序(ASP.NET mvc)使用并行trandsactions?

如何缓存数据库表以防止在Asp.net C#mvc中进行许多数据库查询

我使用Asp.net mvc 4(c#)构建自己的cms,我想缓存一些数据库数据,如:本地化,搜索类别(它是长尾,每个类别都有自己的子和子子类别),等等.. 一直查询数据库会有点过分,因为每个页面请求可能超过30-100个查询,但用户很少更新这些数据库 那么最好的方法(性能和便利性)是什么? 我知道如何使用动作的OutputCache,但这不是我在这种情况下所需要的,它是缓存html,但我需要的是,例如,我自己的助手@html.Localization(“Newsletter.Tite”)将采取语言的价值,或与数据交互的任何其他帮助者等。 我认为(不是很确定)我需要缓存我想要的数据,只有在第一次调用应用程序时,然后使用缓存位置,但我没有任何经验。

多个添加的实体可能在数据库种子上具有相同的主键

假设我使用entity framework6为asp.net mvc 5应用程序提供了以下模型结构 class Athlete { int AthleteID {get; set;} List YearsAsAthlete {get;set;} } class YearsAsAthlete { int YearsAsAthleteID {get;set;} int AthleteID {get;set;} [ForeignKey(“AthleteID”)] Athlete Athlete {get;set;} List ContractRevenue {get;set;} List AdvertisementRevenue {get;set;} } class ContractRevenue { int ContractRevenueID {get;set;} int YearsAsAthleteID {get;set;} [ForeignKey(“YearsAsAthleteID”)] YearsAsAthlete YearsAsAthlete {get;set;} List RevenueAmounts {get;set;} } class AdvertisementRevenue {get;set;} […]

Web.API中的自定义授权

我对ASP.NET MVC的理解是,对于授权,我应该使用类似的东西 – public class IPAuthorize : AuthorizeAttribute { protected override bool AuthorizeCore(HttpContextBase httpContext) { //figure out if the ip is authorized //and return true or false } 但在Web API中,没有AuthorizeCore(..) 。 有OnAuthorization(..) ,MVC的一般建议是不使用OnAuthorization(..) 。 我应该在Web API中使用什么来进行自定义授权?

ASP.NET MVC Web应用程序中基于队列的后台处理

如何在ASP.NET MVC Web应用程序中实现后台处理队列? 虽然大多数数据更改,更新等需要立即可见,但还有其他更新不需要实时处理,我希望将其移交给优先级较低的后台进程,后者将按照自己的进度处理它。 例如,采用StackOverflow的徽章奖励系统。 通常你可以采取一种特定的行动来奖励你一个徽章,但实际的“奖励”发生在以后(通常在10分钟到几个小时之后)。 我认为这是通过单独的后台流程完成的,因为SO的工作在获得时立即授予徽章并不重要。 所以,我正在尝试创建某种队列系统,在这种系统中我可以填充任务(比如实现ITask接口的任何东西,它将有一个Process()方法),最终将由一个单独的进程执行。 我将如何实施这样的系统? 想法/提示/示例代码? 谢谢!

电话号码validationMVC

我正在尝试使用正则表达式来validation电话号码,并在提交无效的号码或电话号码时返回错误。 MVC代码 : Phone Number: @Html.TextBoxFor(model => model.PhoneNumber, new { @class = “textbox” }) @Html.ValidationMessageFor(model => model.PhoneNumber) C#代码 : [DataType(DataType.PhoneNumber)] [Display(Name = “Phone Number”)] [Required(ErrorMessage = “Phone Number Required!”)] [RegularExpression(@”^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$”, ErrorMessage = “Entered phone format is not valid.”)] public string PhoneNumber { get; set; } 但是,输入框不会向用户显示消息,表明提交的电话号码无效。

剃刀中的多个复选框(使用foreach)

我有一个问题,我找不到解决方案。 我正在使用Razor,它是我的VieModel类。 public class GroupToExport { public GroupToExport() { ToExport = false; } [DisplayName(“Export”)] public bool ToExport { get; set; } public Group Group { get; set; } } public class GroupsToExport { public GroupsToExport() { //refill list } public List ExportingGroups { get; set; } } 视图: @using (Html.BeginForm(“Export”, “ElmahGroup”, FormMethod.Post, new { id […]

使用mvc应用程序将video上​​传到youtube(所有代码隐藏)

这真是太疯狂了,我花了一个星期的时间试图解决这个问题。 我发现的一切都被弃用或者不起作用。 所以这就是我想要做的。 我们让用户上传video,我们会将video存储到批准之前。 一旦获得批准,我们需要将其上传到我们的YouTube频道。 来自Google: https : //developers.google.com/youtube/v3/code_samples/dotnet#retrieve_my_uploads的示例将无法通过GoogleWebAuthorizationBroker.AuthorizeAsync,因为它只会永久挂起。 这种方法的另一个问题是我们在上传video后需要id,我们需要知道video是否成功上传,所有这些都是同步的。 你会看到它使用异步方法的代码,并获得video的id,有一个回调。 有没有人知道如何同步在mvc应用程序的后端上传video?

FileStreamResult是否关闭Stream?

我的问题类似于这个问题: 文件()在asp.net mvc关闭流吗? 我在C#MVC 4中有以下内容。 FileStream fs = new FileStream(pathToFileOnDisk, FileMode.Open); FileStreamResult fsResult = new FileStreamResult(fs, “Text”); return fsResult; 将由FileStreamResult自动关闭fs吗? 谢谢!

MOQ – 模拟MVC控制器的Response.Cookies.Clear()

我是MOQ的新手,但我正在使用NUnit进行unit testing。 我已经模拟了我的控制器的所有部分,除了以下行抛出“对象未设置为对象的实例”错误消息。 Response.Cookies.Clear(); 我有以下扩展方法来模拟控制器上下文,它适用于我迄今为止所遇到的所有其他事情(非常感谢此论坛上的好人)。 public static int SetUpForTest(this System.Web.Mvc.Controller ctl, string username, TestingUtility.Roles role) { var routes = new RouteCollection(); MvcApplication.RegisterRoutes(routes); var request = new Mock(MockBehavior.Strict); request.SetupGet(x => x.ApplicationPath).Returns(“/”); request.SetupGet(x => x.Url).Returns(new Uri(“http://localhost/a”, UriKind.Absolute)); request.SetupGet(x => x.ServerVariables).Returns(new System.Collections.Specialized.NameValueCollection()); var response = new Mock(MockBehavior.Strict); response.Setup(x => x.ApplyAppPathModifier(Moq.It.IsAny())).Returns((String url) => url); // response.SetupGet(x => x.Cookies).Returns(new HttpCookieCollection()); […]