问题标签 [asp.net-mvc-5.2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
424 浏览

c# - MVC 5.2.2.0:@Scripts.Render(...) 无法识别

我最近将我的 Visual Studio 升级到更新 4 (2013),显然我的 MVC 版本也已升级。问题是,我不能再使用了,@Scripts.Render因为它不能识别Scrripts类型并且它说它不存在。我知道它来自,System.Web.OptimizationOptimization名称空间也不见了。

我使用@Scripts的原因是因为客户端验证,在此升级之前我对此没有任何问题。那么这是一个错误还是微软对新的 MVC 版本进行了一些更改,Script.Render不再支持这种方法?

0 投票
1 回答
124 浏览

c# - 实体上的属性作为 ASP.NET MVC 中的路由值

我正在使用 ASP.NET MVC 5 开发一个新项目。在许多很酷的网站上,您经常会看到这样的路线:

www.website.com/artist/vincent-van-gogh/wiki

www.website.com/artist/vincent-van-gogh/paintings

所以想象我有一个Artist看起来像这样的实体:

我想通过 URL 中的属性查看任何给定艺术家的详细信息,.Name如上所示?

有没有一种方法可以在 ASP.NET MVC 中实现这一点,而无需创建数千条独特的路由?

0 投票
1 回答
2148 浏览

owin - 在 UseOpenIdConnectAuthentication 之后,如何将 Security Token 中的声明放入 OwinConext.User 中的 Controller.User(当前 HttpContext)中?

我有带有个人用户帐户的 VS2013 MVC5 项目。我修改Startup {Configuration(IAppBuilder app)}了这UseOpenIdConnectAuthentication是唯一允许的身份验证。

用户可以使用开箱即用的 MVC 项目模板管道在 AspNetIdentity DB 中注册。注册后,用户使用 OIDC 登录。

OpenID Connect STS(IdentityServer3 with AspNetIdentity)返回一个带有声明和角色的安全令牌。这些声明可ClaimsPrincipalRequest.GetOwinContext().Authentication.User.

Controller.User但是, (当前 HTTP 请求上下文)中缺少这些声明。

ClaimsPrincipal让两者匹配是一件好事吗?

问题:如果是这样,我该怎么做以及在哪里做?我不是专家,想知道OpenIdConnectAuthenticationNotifications.SecurityTokenValidatedor Application_PostAuthenticateRequest呢?

我意识到这是将 MVC5System.Web与 OpenIdConnect 的 OWIN 中间件混合的副作用,而不是默认的 MVC5 项目身份验证中间件。

0 投票
0 回答
232 浏览

cookies - 如何使用 ASP.NET Identity 2.0 在多个应用程序之间共享安全 cookie?

是否可以拥有一个安全数据库并使用 WebAPI 将用户登录/创建 cookie。

然后让多个 MVC 应用程序使用该 cookie。例如,我可以让 User1 具有以下角色:ApplicationA 和 ApplicationB,当用户转到 ApplicationA 时,他们必须使用 WebAPI 登录,然后它会允许他们访问我设置为授权角色 ApplicationA 的控制器。

然后,如果他们从 ApplicationA 导航到 ApplicationB,而不是让他们再次登录,它使用相同的 cookie 并知道他们被授权,并且只需要检查角色以确保他们可以访问我设置为授权的控制器在角色 ApplicationB 上。

如果他们导航到 ApplicationC,它会将他们识别为授权用户,但我可以使用 User1 没有的角色 ApplicationC 控制对该应用程序中控制器的访问,因此它会将他们重定向到登录屏幕和/或告诉他们他们的用户名无权访问。

我有多个应用程序使用同一个安全数据库,但是如果您从一个导航到另一个,它会让您再次登录,我想避免这种情况。

在我通过代码示例详细介绍我现在正在做什么之前,我想确保我希望它如何工作是可能的,以及我是否以正确的方式和使用正确的方法进行。

感谢您的反馈。

0 投票
1 回答
709 浏览

asp.net-mvc - MVC 5.2 EditorFor HtmlAttributes 停止工作

我不确定发生了什么变化,但我的 EditorFor 助手上的 htmlAttributes 突然停止工作。标签仍然有效,但 EditorFor 无效。如果我将它们更改为 TextBoxFor 则添加属性/类。

未添加的类:

添加了类:

我验证我使用的是 MVC 5.2。

任何帮助是极大的赞赏。

0 投票
0 回答
502 浏览

asp.net-mvc - 带有 StructureMap 和 OWIN 身份验证的 ASP.NET MVC5

我继承了一个使用 Owin 身份验证和像这样的引导程序的应用程序(通过 PreApplicationStartMethod 属性)

我已经介绍了 StructureMap.MVC5,它通常可以正常工作,但在ApplicationUserManager, ApplicationSignInManager & ApplicationRoleManager. 我如何解决这个问题的情况下却不行,以便使用和Create调用这些类的方法。我知道我需要以某种方式将 Owin 解析器连接到结构映射,但我不清楚具体如何?IOwinContextIdentityFactoryOptions

0 投票
0 回答
127 浏览

c# - 更新到 mvc 5.2.3.0 导致 ValidationMessageFor 包含空消息

在 MVC 的最新更新之前,我的页面的提琴手输出会生成这个 html。

更新包后的输出如下。

跨度不再包含错误消息?

需要明确的是,所有模型上的所有错误消息都在做同样的事情,这并不特定于某个特定领域。

配置文件没有改变,并且有以下几行:
如果我 ClientValidationEnabled 从配置文件中删除旧的(正确的?)HTML 生成。

我已经编辑了帖子以包含下面的模型。

我已将所有软件包更新到最新版本,MVC 在 5.2.2.0

0 投票
1 回答
228 浏览

c# - moq 对象在分配给控制器后变为空

我正在为 MVC5 控制器方法构建测试。我正在使用最小起订量进行测试。我感兴趣的是如何测试需要身份验证的控制器方法,并使用用户 ID 值而不是用户名值来决定向浏览器/客户端显示哪些数据。

从我到目前为止的研究来看,有大量代码可用于 moq 用户名,但用户 ID 值的代码不多(在我的情况下,它看起来像一个 Guid)。我使用 ASP.Net Identity 作为帐户管理。我还为 Google 和 Facebook 登录添加了 OWIN。

我正在使用依赖注入(使用 Unity),因为这似乎是完成测试的唯一方法,而且 DI 可以使用 moq。

以下是从控制器方法中寻找“NotNull”返回的测试方法示例:

GetCurrentUserId 方法是我使用以下代码在 User.Identity 对象中查询用户 ID 的地方:

据说该方法已被最小起订量取代。GetCurrentUserId 方法是辅助类 (MyHelper) 中的虚拟方法,它是模型对象 (ModelObject) 的构造函数的参数,它是控制器 (ExampleController) 的构造函数的参数。

测试方法的调试器(Visual Studio 2013)中发生的情况是对象是在 CreateModelObjectFromHelper 方法中创建的,但是在以下行创建 ExampleController 时:

MyHelper moq'd 对象变为空。我可以看到该对象在此语句之前有一个值,但在此语句中,MyHelper 对象变为空......并且整个测试失败。我认为它失败了,因为很难在为空的对象上调用方法。

问题是......是什么导致这个对象变为空?

另一个问题是......也许有更好的方法来做到这一点,如果是这样,我肯定很高兴听到建议。

谢谢

0 投票
1 回答
669 浏览

c# - MVC5 C# jQuery Unobtrusive Validation with ignore and Show/Hide Message

我的用户要求我将其中一个字段从必需更改为可选,但仍显示/隐藏警告消息。尝试通过尽可能少的重构来做到这一点,我allowsubmission在服务器上的数据注释和客户端的 jquery 方法中添加了一个属性(见下文)。

是否可以在仍然隐藏/显示消息的同时在元素上设置忽略类?似乎该方法第一次触发,然后在添加忽略类后停止触发,因此消息保留在屏幕上。

或者,还有更好的方法?谢谢你。

0 投票
1 回答
363 浏览

asp.net - POST 复杂对象到控制器

我正在从事一个企业规模的项目,其中我有一个名为类别的自引用表,如下所示。同样在我当前的模型中,我使用下表关联来获取数据。(使用 EF6)。

在此处输入图像描述

我在 DB 中有用于上述 MM 关系的 MM 映射表。

在我的控制器中,GET 操作结果返回具有 Ilist(所有父类别)的模型。然后,当用户选择项目(在视图中)时,我使用 Ajax 检索 Ilist 以获取下一个类别子集(通过 Id 传递给控制器​​ - 返回 Json 结果)并动态显示在父选择列表旁边,如下所示。(我最多有 4 个子集)

在此处输入图像描述

当用户选择类别时,我正在使用 Ajax 调用来加载相关类别并动态创建选择列表或下拉列表,如下所示:

在此处输入图像描述

我的问题是由于所有这些数据都是通过 Ajax 加载的,我如何将它们绑定到我的父模型。当用户将 from 发布到控制器时,如何将用户选择的数据捕获到一个父模型中。

我知道我可以使用 Ajax 并使用 Json 捕获并传输到控制器,但是我需要使用 modelview,我可以使用 partiview 来克服这个问题吗?

请告知可用的选项..