Tag: asp.net mvc

与.net中的数据注释相反?

ASP.NET中[Compare(” “)]数据注释的反面/否定是什么? 即:两个属性必须包含不同的值。 public string UserName { get; set; } [Something[“UserName”]] public string Password { get; set; }

下载MVC

在我的MVC应用程序中,我需要添加一个显示域名列表的下拉列表。 我已经有一个包含多个属性的ViewModel。 我不确定步骤的顺序应该是什么: 将新属性添加到我的ViewModel ? 应该是什么类型? 名单? 定义使用值填充上述属性的方法。 在视图中使用该属性? 使用HTML.DropdownFor ? 我知道我应该在我的问题中加入一些代码,但是现在我很难开始这个… 编辑:向ViewModel添加以下属性: public IEnumerable DomainList { get; set; } 并实现了一个返回域列表的方法: internal static List FetchAllDomains() 接下来在我的控制器动作中,我有: var domains = FetchAllDomains().Select(d => d.DomainName); return new EmailModel() {DomainList = domains }; 但是我收到以下错误: 无法将类型’System.Collections.Generic.IEnumerable’隐式转换为’System.Collections.Generic.IEnumerable’。 存在显式转换(您是否错过了演员?)

在ajax post问题中传递数据

场景: 需要将包含子对象列表的对象传递给控制器​​。 问题 : 我能够获取对象的值,但不能获取对象内的子对象列表的值。 代码: index.cshtml function sendData() { var student = { Id: 1, Name: “xxx”, Marks: [{ Subject: “Maths”, Mark:80 }, { Subject: “Science”, Mark: 75 }] } $.ajax({ url: ‘@Url.Action(“Receive”, “Home”)’, data: student, success: function (data) { alert(“done”); }, error: function (error) { alert(‘error For details refer console log’); console.log(error); } […]

非顺序集合绑定

将MVC视图中动态创建的元素集合绑定到MVC 4中的集合的最佳方法是什么。我知道以前的版本要求元素如下所示: 但是当你动态添加新元素并删除它们时,事情很快就会失序。 MVC 4是否添加了绑定到非顺序集合的方法?

在外部JavaScript文件中插入动态值的安全方法

我正在使用以下策略实现内容安全策略标头 Content-Security-Policy: default-src ‘self’ 所以需要避免内联脚本,因为它不会执行。 但是,在MVC应用程序中,某些function(如编辑器模板)使用内联脚本。 例如tinymce_jquery_full.cshtml包含 $(function() { $(‘#@ViewData.TemplateInfo.GetFullHtmlFieldName(string.Empty)’).tinymce({ … 使用CSP时,在外部.js文件中包含动态值的好方法是什么? 我目前的想法是两种方式之一: C#生成的JavaScript 类似于JSONP的工作方式,除了在URL中我没有指定回调 – 我只是传递动态值。 在每个需要动态JavaScript的文件中,我都包含一个链接,例如 它命中ScriptController的Foo动作,它返回插入动态值bar text/javascript类型的内容。 这对我来说是一种可靠的方式,如果有点笨拙,它首先会破坏使用CSP的一些优点(几乎很容易意外地插入未编码的文本并导致XSS,因为它没有CSP)。 隐藏的表单字段 动态值将插入页面: 并在外部JavaScript文件中查找这些值: $(‘#url’).val(); 这将有效,但如果页面上有多个动态控件或者有多个相同类型的控件,则可能会很麻烦。 问题是如何有效地将每个.js脚本与其隐藏字段匹配。 有没有更好的解决方案,还是有任何我可以使用的现成框架?

带有自定义标头的MVC重定向

希望对于那里的某个人来说,这是一个简单的问题。 基本上在收到我的MVC控制器的请求后,我想: 在响应中添加“授权”标头 重定向到另一个域上的另一个应用程序 阅读此外部站点的“授权”标题。 它似乎是重定向的行为,剥离了我的所有自定义标题和重定向。 我的问题是,我如何添加新的标头,并执行重定向,并在接收主机[在重定向结束时]的标题中显示该标题?

Autofac – 无法创建请求生命周期范围,因为HttpContext不可用 – 由于异步代码?

简短问题: 与此未解决的问题相同 长问题: 我刚刚从MVC 4 + Web Api解决方案中移植了一些代码,该解决方案使用Autofac进入我的新解决方案,该解决方案也使用Autofac但仅使用Web Api 2(没有MVC 5.1项目,只有web api)。 在我以前的解决方案中,我有MVC4和Web Api所以我有2个Bootstrapper.cs文件,每个文件一个。 我复制了新项目的Web Api引导程序。 现在我在新解决方案中有2个其他需要依赖项目的项目。 让我们假设我必须使用DependencyResolver.Current.GetService()尽管它是一个反模式。 起初,在我将MVC依赖关系解析器设置为同一容器之前,这是行不通的: GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container); //I had to pull in Autofac.Mvc and Mvc 5.1 integration but this line fixed it DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); 奇怪的是,这样做只会修复其中一个项目! 这是情况: Solution.Web project Bootstrapper.cs that registers both dependency resolvers for web api and mvc. […]

在特殊类型的Asp.Net Mvc应用程序中保持用户状态的最佳实践

我将尝试解释我的情况和我想做的事情。 没有任何困难和罕见的情况,但我在互联网上找不到任何相关问题或文章。 我在ASP.NET MVC 5上创建了一个Web应用程序。 用户不会直接进入我的应用程序。 用户将输入到CentralInformationSystem.com 。 然后他们必须以支持的方式登录本网站。 登录后,他们将看到一个应用程序列表。 将有允许用于签名用户的应用程序。 其中一个应用程序将是我在Asp.Net MVC开发的应用程序。 而重点是我们的应用程序不会在其他选项卡或当前选项卡中打开等等。 我们的应用程序将在当前选项卡内的大型iframe中打开。 其他要点是我们的应用程序和CentralInformationSystem.com属于其他域。 另一个问题当然是,我现在可以用哪个用户登录 ? 答案是, CentralInformationSystem.com将带有查询字符串的加密数据发送到我们的网站。 例如,URL将如下所示: MyMvcApplication /首页/指数?令牌= jkndid758adsai == qwdbqwiudhqwadoqidwqq = wqdiqw 还要记住,他们总是会发送不同的令牌。 之后,我将解密令牌并找到它属于哪个用户。 还要记住,一个令牌只能使用一次。 1.我的申请是什么类型的申请? 用户将进入非常大的forms。 它实际上可能需要3-4个小时。 所以,我尝试过某种类型的向导逻辑。 输入数据的某些部分后,我会将它们插入数据库,从数据库中获取标识符并将其存储在某个地方并将用户带到下一个级别,依此类推。 2.我想要实现的目标? 我想创建这样的逻辑,一些标识符变量值必须存储在永远不会过期的地方,直到用户关闭浏览器或退出。 我不想将会话超时增加到5-6小时。 3.如果用户在多个选项卡中打开我的应用程序怎么办? 除了2我还有一个问题,用户可以在iframe中打开我的网站多个标签。 我知道,在Asp.net我们可以根据每个选项卡Asp.net会话。 但是,我不想在会话中存储数据,因为用户可以在20分钟或4小时后停止填写表单。 此外,我不能使用cookie,因为所有标签的cookie都是相同的。 我的另一个选择是,为所有视图注入带有加密值的隐藏输入。 但是,我找不到如何自动将这些数据添加到每个视图。 此外,它似乎并不是我最有效的方式。 另一个逻辑是阻止用户使用不同的标记在多个选项卡中打开相同的应用程序。 但是,不要如何实现这一目标。 额外: 我几乎阅读了所有文章和问题/答案。 我知道如何让它发挥作用。 但是,我想要最好的方法。 我的方法都没有效率。

开发与Web表单应用程序一致的自定义身份validation和授权系统

我正在创建一个新的ASP.NET MVC 4应用程序(实际上是我的第一个MVC应用程序),它是我以前的ASP.NET Web表单应用程序的一部分。 我从未在任何项目中使用ASP.NET内置身份validation方法。 这个新的MVC 4应用程序将在以前的应用程序的子域上发布。 登录将从之前的应用程序完成。 如果没有登录,应该从MVC应用程序提供返回URL以返回当前页面。但是,新用户注册,帐户恢复选项已经在以前的Web表单应用程序中开发,我不想在我的新MVC中复制它们应用。 如果成功登录,将从Web表单应用程序发出带有令牌编号的cookie token ,该令牌将共享给所有域,如*.maindomain.com 。 现在我想将自己的令牌validation方法与ASP.NET内置方法合并,以便我可以在新的MVC应用程序中使用Authorize和其他与安全相关的选项。 在我之前的应用程序中,我以下列方式开发了自定义用户validation系统。 首先,我有以下相关的SQL Server表 和以下课程 public class Token { public static uint GenerateToken(string userEmail, string password, bool isPersistent) { // this static function generates a uint type unique token number // and put this in the cookie “token” using HttpContext.Current.Response object. // […]

如何分析ASP.NET MVC应用程序中的请求性能?

我想捕获ASP.NET MVC应用程序中的请求的命中时间,处理时间,内存消耗和响应时间。 有没有办法或工具来执行此操作?