Tag: asp.net mvc

如何在单独的程序集中获取用户标识

我正在开发一个有两个项目的应用程序: 核心 – 使用存储库模式和域驱动设计来容纳数据访问层 UI – 使用ASP.Net MVC。 目前,我能够通过User属性在UI控制器内获取当前登录用户的信息(id,name等),如下所示: using Microsoft.AspNet.Identity; public class ExamController : Controller { IExaminationRepository _repository; public ExamController() { _repository = RepositoryFactory.Get(); } [HttpPost] [Authorize(Roles = “Examiner”)] public ActionResult Create(ExamViewModel viewModel) { try { ExaminationDomain domain = Mapper.Map(viewModel); //TODO: Move this to the repository domain.AuthorId = User.Identity.GetUserId(); _repository.Add(domain); return RedirectToAction(“Index”); } catch […]

MVC到Azure Active Directory签署回复“错误请求”和消息“无法创建以从中获取配置”

我究竟做错了什么? 我正在尝试从示例MVC应用程序登录Azure Active Directory并获取“错误请求”。 我在这里关注这个例子(2015年7月17日): azure.microsoft.com的例子 以下是其他人对同一数据的逐步详细说明: 博客作者扩展了azure示例 我用下面的“myActiveDirectory”替换了我的活动目录的名称。 这是我的webconfig数据: <add key="ida:AppKey" value="” /> <add key="ida:ClientId" value="d2bfc007–9f” /> AccountController.cs using System.Web; using System.Web.Mvc; // OWIN using Microsoft.Owin.Security; using Microsoft.Owin.Security.OpenIdConnect; using Microsoft.Owin.Security.Cookies; namespace TodoListWebApp.Controllers { public class AccountController : Controller { public void SignIn() { // Sends an OpenID sign-in request. if (!Request.IsAuthenticated) { HttpContext.GetOwinContext(). Authentication.Challenge(new […]

Nhibernate拦截器 – 获取属性长度OnSave

我有简单的NHibernate拦截器和覆盖方法OnSave()。 现在我要做的是获取字符串属性的SQL长度。 那可能吗。 我可以看到属性IType[]类型包含SqlType ,其中Length可用,但是找不到如何读取它。 调试示例: 这是我所拥有的代码的示例,以及我在哪里尝试获取Sql属性的长度。 public override bool OnSave(object entity, object id, object[] state, string[] propertyNames, IType[] types) { for (int i = 0; i < propertyNames.Length; i++) { //If type is string if (types[i].GetType() == typeof(NHibernate.Type.StringType)) { //Get SQL length of string property } } return false; } 任何帮助我怎么能得到这个?

如何从Lambda表达式的String动态创建方法

我的最终目标是创建一个函数,将函数方法名称动态传递给Hangfire库中的类。 例如,以下是非动态代码: RecurringJob.AddOrUpdate(() => myFunction(), Cron.Hourly) AddOrUpdate的第一个参数的类型是Expression 。 我的第一步是使用reflection来动态插入函数名称: Type thisControllerType = this.GetType(); MethodInfo method = thisControllerType.GetMethod(methodName); //methodName passed as string parameter RecurringJob.AddOrUpdate(() => method.Invoke(this, null), Cron.Hourly); 当我检查Hangfire仪表板时,似乎该表达式被评估为MethodBase.Invoke 。 所以我需要帮助动态传递方法名称。 这可能足以回答我的问题,但我采取的另一条路径是尝试为参数生成整个表达式。 RecurringJob.AddOrUpdate(CreateCallExpression(method), Cron.Hourly); public Expression CreateCallExpression(MethodInfo method) { //trying to pass in zero argument parameter, not sure if this syntax is correct var parameter = […]

如何使用输入元素提交包含多页表的表单

我在我的Table和Datatables.net上使用bootstrap来集成搜索和分页。 问题是在单击提交按钮后,只有表的当前页面保留在模型上。 如果没有通过Datatables.net集成搜索和分页,只有在使用Datatables.net插件时才会出现错误。 模型: public class SampleViewModel { public List Collection { get; set; } } public class CollectionViewModel { public string Name { get; set; } public int? Value { get; set; } } 控制器: public ActionResult Sample() { SampleViewModel model = new SampleViewModel(); model.Collection = new List(); model.Collection.Add(new CollectionViewModel { Name = “Test1” […]

自定义字符串作为具有entity framework的主键

我正在尝试使用Code First Entity Framework将个性化字符串设置为主键。 我有一个帮助函数返回一个n-chars随机字符串,我想用它来定义我的Id,就像YouTubevideo代码一样。 using System.Security.Cryptography; namespace Networks.Helpers { public static string GenerateRandomString(int length = 12) { // return a random string } } 我不想使用自动递增的整数(我不希望用户使用机器人太容易访问每个项目)或Guid(太长时间无法向用户显示)。 using Networks.Helpers; using System; using System.ComponentModel.DataAnnotations; namespace Networks.Models { public class Student { [Key] // key should look like 3asvYyRGp63F public string Id { get; set; } public string […]

MVC:如何根据值更改Html.Grid行的颜色?

我想知道如何更改Html.Grid中行的颜色,如果’Completed’布尔属性等于true。 这是一个示例网格: @Html.Grid(Model.ExampleList).Columns(c => { c.For(a => string.Format(“{0:dd/MM/yyyy}”, a.DateRequested)).Named(“Date Requested”); c.For(a => a.Comment).Named(“Comment”); c.For(a => a.Completed).Named(“Completed”); }) 任何帮助将不胜感激。 谢谢。

ReportViewer控件不显示报告

我已经到处寻找解决这个问题的方法,但还没找到一个对我有用的方法。 我在托管服务器上设置了报告服务器(2008 R2)。 我使用报表生成器从头创建了一个报表,在使用其URL登录到报表服务器时对其进行了测试,并成功生成了报表。 当我尝试从MVC应用程序查看报告时,只有报告工具栏呈现(显示导出,打印,页面和视图报告按钮)。 它显示它是“正在加载”,在它完成之后它只是一个空白报告,但是它在工具栏上显示了正确的参数,如果我在代码中更改了参数的名称,则返回一个错误,指出参数没有存在; 所以我知道地址user / pw信息是正确的。 页面的代码和标记 Back to Reports / Start Date: <input type="text" name="start" class="datepicker" value="” /> End Date: <input type="text" name="end" class="datepicker" value="” /> <input type="hidden" name="id" value="” /> protected void Page_Load(object sender, EventArgs e) { try { if (!IsPostBack) { if (ViewData[“Start”] != null) { var param = […]

如何在MVC 5中的单个Ajax POST请求中发送ViewModel和文件?

我有一个ASP.NET MVC 5应用程序。 我正在尝试使用Model数据发送POST请求,还包括用户选择的文件。 这是我的ViewModel(为简洁起见而简化): public class Model { public string Text { get; set; } public long Id { get; set; } } 这是控制器动作: [HttpPost] public ActionResult UploadFile(long userId, Model model) { foreach (string file in Request.Files) { // process files } return View(“Index”); } Html输入元素: 和JavaScript代码: $(‘#txtUploadFile’).on(‘change’, function (e) { var data = […]

如何正确处理子操作exception

我有一个返回PartialView的Action: [ChildActionOnly] public ActionResult TabInfo(int id, string tab) { ViewBag.Jobid = id; ViewBag.Tab = tab; var viewModel = _viewModelManager.GetViewModel(tab, id); return PartialView(string.Format(“~/Views/{0}/Index.cshtml”, tab), viewModel); } _viewModelManager从Dictionary中返回一个视图。 如果用户请求不存在的选项卡,则会抛出KeyNotFoundexception,但是,在我的视图中,我得到以下exception: Error executing child request for handler ‘System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper’ @using MyApplication.UI.Helpers.Html @model MyApplication.UI.Models.MyJobModel @{ ViewBag.Title = “Details”; } @Model.Blah … *@ HttpException occurs here — renders default error view *@ […]