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

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 投票
2 回答
2467 浏览

asp.net-mvc - 自动检测所有模型到脚手架

我有一个 ASP.NET MVC 4 项目,其中包含许多要以自定义方式搭建的模型。我已经定制了模板来创建控制器并查看我想要的样子。这一切都很好。现在,我编写了一个 PowerShell 脚本来为每个需要搭建脚手架的模型一次生成控制器和几个视图。这也很好用。

然后我去寻找一个 PowerShell 脚本来在一个命令中构建多个模型,因为现在我必须为我拥有的每个模型手动运行脚本。我发现的第一件事是编写一个脚本,在每一行都使用命令来搭建模型,它工作得很好,但在我看来仍然是太多的工作。经过更深入的搜索后,我发现这可以通过一个脚本来完成,该脚本具有要构建的模型列表和一个遍历列表的 foreach 循环,然后为该列表中的每个项目执行支架命令。这好多了!

我现在唯一问自己的是:是否可以编写一些脚本来自动检测 Model 文件夹中的所有模型,将它们放入列表中,然后执行循环。我问这个的原因是因为我不只是几个模型,而是大约 250 个。并不是我不想手动执行此操作,而是如果添加、更改或删除某些模型怎么办.. .

所以我的问题是:有没有办法“动态”从模型文件夹中获取所有模型并将它们放入将被迭代的列表中?

更新:

这就是我的脚本“ScaffoldAll.ps1”现在的样子(并非所有 250 个模型都在列表中):

我想要实现的目标(伪!):

这可能吗?

0 投票
1 回答
7736 浏览

asp.net-mvc - @Html.ValidationSummary 是否适用于 MVC3 或 MVC4 中的客户端验证?

我有以下代码:

当我输入 999 的订单值时,我会立即获得客户端验证,在订单文本框之后显示一条错误消息。但是,Html.ValidationSummary 区域中没有显示任何内容。是否可以将其与客户端验证一起使用?

这是我的模型:

我的网络配置:

0 投票
1 回答
352 浏览

entity-framework-4.1 - 如何制作 ICollection必需的。如何

这是我的主实体,它将包含语言列表

我的 WebSiteLanguage 子类是

在我看来,我可以在 ajax 调用中添加多种语言。

在此处输入图像描述

我的问题是:
是否有可能使

公共虚拟 ICollection WebSiteLanguages { 获取;放; }

必需的。如果没有创建 WebSiteLanguage,则网站实体无效。

非常感谢。

0 投票
1 回答
14644 浏览

visual-studio-2010 - 彻底单元测试 ASP.Net MVC 4 应用程序

我意识到这是大约 20 个不同帖子的副本,但没有一个是特定于 MVC4 的,而且我所见过的没有一个能真正回答我所有的问题。到目前为止,我第一次涉足 TDD 世界至少可以说是令人沮丧的。我尝试做的大部分事情似乎与 MVC 4 不兼容,或者如果不使用我还不太了解的文档不完整的第三方库,这几乎是不可能的。

我想要做的是编写一个测试来测试我的控制器动作、它们传递的模型以及动作将模型发送到的视图。我想测试视图是否存在,我想测试传递的模型是否是视图的正确类型,我想要一些方法来测试它是否能正确处理。我也希望能够测试我的路线。并测试身份验证过滤器?

我想要一种对 ASP.Net MVC 进行单元测试的方法,这种方法几乎没有机会。

测试动作的模型输出似乎很容易,但测试视图几乎是不可能的。

所以这是我的问题清单:

  1. 一旦我测试了动作并得到了动作结果,我如何测试它想要的视图是否存在?
  2. 如何测试我的路线?
  3. 如何测试以确保我的视图得到正确处理?
  4. 对 ASP.Net MVC 4 进行彻底单元测试的真正“最佳实践”是什么?
  5. 如何对表单身份验证进行单元测试?
  6. 如何对动作过滤器进行单元测试?

我更喜欢使用内置的 Visual Studio 测试项目,但如果我必须使用 NUnit,我必须。我只需要确保它正确完成。

预先感谢您的回复。

编辑:我也无法让 NUnit 与我的 MVC4 应用程序一起使用,因为其中一个程序集与.NET 版本不兼容。

0 投票
1 回答
1192 浏览

asp.net-mvc - 创建具有属性列表的对象并将其传递给控制器

也许我的问题有一个简单的解决方案,但我似乎根本找不到它。我已经阅读了很多关于 Knockout 的教程,所以我了解了基础知识,但我问了这个问题,因为我的实体结构比一个有名字和朋友列表的人要复杂一些,这些人可能在也可能不在 Twitter 上(视频 on Channel9:帮助您使用 MVVM 和 ASP.NET 构建动态 JavaScript UI。这是我的情况:

我有一个具有这种基本结构的PersonnelClass类:

PropertyCollection类和关联的AbstractProperty类如下所示:

在我的控制器中,我创建了一个具有以下结构的PersonnelClassViewModel实例:

我用一个新的 PersonnelClass 和两个测试属性填充这个视图模型以传递给我的视图,如下所示:

我想要的一切都在我的视图中。从视图中,我想使用一组选定的属性创建一个新的 PersonnelClass。我有名称和描述字段并添加属性我有一个列表框,其中包含已经存在的属性(出于演示目的,它们现在来自控制器)。通过一些 Knockout JavaScript 代码,我可以从该列表中选择项目并使用所选属性填充 HTML select-control () 以添加到 PersonnelClass。这一切都很好,直到我想建立一个对象传回控制器并创建 PersonnelClass。

我的问题是:需要什么 Knockout JS 代码来构建这个对象并通过提交表单将它传递给控制器​​,在我的控制器中我应该如何接收这个对象,意思是:这应该是什么类型的对象(PersonnelClass、PersonnelClassViewModel、 ...) ?

如果需要更多信息/代码,请询问。提前致谢!

回答“B Z”后更新:

我遵循了更多关于此的 Steven Sanderson 的教程,以确保我理解这一点,尤其是您在答案中提供的那个。现在我的视图中有以下代码:

变量“initialData”包含我希望它具有的值,但随后出现以下错误:

Microsoft JScript 运行时错误:“personnelClassViewModel”未定义

我已经没有头绪了。谁能帮我解决这个问题?

0 投票
1 回答
1091 浏览

ninject - Ninject.MVC3 + MediumTrust = 安全异常

  1. 我创建了一个 Asp.net MVC 4 类型的新项目
  2. 我通过 Ninject.MVC3 NuGet 安装了这个包Install Package Ninject.MVC3
  3. 运行项目时,安全错误:

错误

“/MediumTrustSample”应用程序中的服务器错误。

安全异常

说明:应用程序试图执行安全策略不允许的操作。要授予此应用程序所需的权限,请联系您的系统管理员或在配置文件中更改应用程序的信任级别。

异常详细信息:System.Security.SecurityException:请求“System.Security.Permissions.ReflectionPermission,mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”类型的权限失败。

源错误:

第 20 行:
DynamicModuleUtility.RegisterModule(typeof(OnePerRequestModule)); 第 21 行:
DynamicModuleUtility.RegisterModule(typeof(HttpApplicationInitializationModule)); 第 22 行:bootstrapper.Initialize(CreateKernel); 第 23 行:
} 第 24 行:

源文件:C:\Users\Riderman_2\Documents\Visual Studio 2010\Projects\MediumTrustSample\MediumTrustSample\App_Start\NinjectMVC3.cs 行:22

堆栈跟踪:

[SecurityException:请求'System.Security.Permissions.ReflectionPermission,mscorlib,Version = 4.0.0.0,Culture = Neutral,PublicKeyToken = b77a5c561934e089'类型的权限失败。]
System.Security.CodeAccessSecurityEngine.SpecialDemand(PermissionType whatPermission,StackCrawlMark& stackMark ) +0
System.Security.CodeAccessPermission.Demand(PermissionType permissionType) +30
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] 参数, CultureInfo 文化, Boolean skipVisibilityChecks) +281
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfoculture) +38 Ninject.Infrastructure.Language.ExtensionsForMemberInfo.GetParentDefinition(MethodInfo method, BindingFlags flags) in ExtensionsForMemberInfo.cs:145
Ninject ExtensionsForMemberInfo.cs:173
Ninject.Selection.Heuristics.StandardInjectionHeuristic.ShouldInject(MemberInfo member) in StandardInjectionHeuristic.cs:47
Ninject.Selection.IsDefined (PropertyInfo element, Type attributeType, Boolean inherit) Selector.cs 中的DisplayClass3.b _2(IInjectionHeuristic h):92 System.Linq.Enumerable.Any(IEnumerable 1 source, Func2 谓词)+149
Selector.cs:92
System.Linq.WhereEnumerableIterator1.MoveNext() +156
System.Collections.Generic.List
1 collection) +552
Ninject.Selection.Selector.SelectPropertiesForInjection(Type type) in Selector.cs:89
Ninject.Planning.Strategies.PropertyReflectionStrategy.Execute(IPlan plan) in PropertyReflectionStrategy.cs:60
Ninject.Planning.<>c__DisplayClass3.<GetPlan>b__1(IPlanningStrategy s) in Planner.cs:68
Ninject.Infrastructure.Language.ExtensionsForIEnumerableOfT.Map(IEnumerable
1 action) in ExtensionsForIEnumerableOfT.cs:23
Ninject.Planning.Planner.GetPlan(Type type) in Planner.cs:70
Ninject.Activation.Context.Resolve() in Context.cs:180
Ninject.KernelBase.<Resolve>b__7(IContext context) in KernelBase.cs:375
System.Linq.WhereSelectEnumerableIterator

1 source) +299
Ninject.Planning.Targets.Target

1.ResolveWithin(IContext parent) in Target.cs:147
Ninject.Activation.Providers.StandardProvider.GetValue(IContext context, ITarget target) in StandardProvider.cs:97
System.Linq.WhereSelectArrayIterator

1..ctor(IEnumerable
1 source) +104
Ninject.Activation.Providers.StandardProvider.Create(IContext context) in StandardProvider.cs:81 Ninject.Activation.Context.Resolve() in Context.cs:157 Ninject.KernelBase.<Resolve>b__7(IContext context) in KernelBase.cs:375
System.Linq.WhereSelectEnumerableIterator

1.InsertRange (Int32 index, IEnumerable 1 series, Action 2.MoveNext() +238 System.Linq.Enumerable.SingleOrDefault( IEnumerable 1.GetValue(Type service, IContext parent) in Target.cs:179 Ninject.Planning.Targets.Target 2.MoveNext() +110 System.Linq.Buffer 1 source) +488 System.Linq.Enumerable.ToArray(IEnumerable 2.MoveNext() +238 System.Linq.d _b1 1 source) +282 Ninject.ResolutionExtensions.Get(IResolutionRoot root, IParameter[] parameters) in ResolutionExtensions.cs:371.MoveNext() +296
System.Linq.Enumerable.Single(IEnumerable


Ninject.Web.Mvc.Bootstrapper.Initialize(Func`1 createKernelCallback) 在 Bootstrapper.cs:72
MediumTrustSample.App_Start.NinjectMVC3.Start() 在 C:\Users\Riderman_2\Documents\Visual Studio 2010\Projects\MediumTrustSample\MediumTrustSample\ App_Start\NinjectMVC3.cs:22

版本信息:Microsoft .NET Framework 版本:4.0.30319;ASP.NET 版本:4.0.30319.272

问题

如何将 Ninject.MVC3 与 MediumTrust 一起使用?

0 投票
1 回答
3095 浏览

asp.net-mvc-4 - Generating a modal jQuery partial view with MVC4 does not work

I like the way MVC4 manage the new logon screen: it is possible to have a modal dialog showed.

enter image description here

I tried to reproduce the same behavior in the same solution for another view. But it doesn't work because Request.QueryString["content"] is null. I don't know why. In fact, there is an action method called ContextDependentView (generated by the MVC template) where the trick occurred. Here it is:

If the value of Request.QueryString["content"] is not null then we display a partial view (modal jQuery) otherwise it is a classic view.

Can someone help me understand why this is not working?

PS: another thread already exists but without any solution.

0 投票
1 回答
1022 浏览

asp.net-mvc-4 - NullReferenceException in DevTrends.MvcDonutCaching.KeyGenerator.GenerateKey

I'm having the problem described by @Aviv in this post: http://www.devtrends.co.uk/blog/donut-output-caching-in-asp.net-mvc-3#125

I looked for the error here and on Codeplex but not found.

The environment is Medium Trust!

Route

Controller

Web.config

_Layout.cshtml

Full error

0 投票
2 回答
941 浏览

c# - 为什么我的自定义成员资格和角色提供者在本地工作,但在部署后失败?

我创建了一个自定义成员资格和角色提供程序,以利用 ASP.NET MVC 4 中内置的身份验证和授权。在我尝试将其部署到测试环境之前,我的应用程序开发过程中一切顺利。

从 Visual Studio 以调试模式启动应用程序可以正常工作。但是,然后我使用 Visual Studio 的一键部署将我的应用程序加载到在我的开发机器上运行的 IIS 实例中。我可以在浏览器中加载应用程序,但身份验证不再有效。使用 Fiddler,我看到一个 cookie 被发回,但我无法访问使用 [Authorize] 属性限制的站点部分。

以下是我的 web.config 中的相关片段。

此外,我在两个自定义提供程序中设置了应用程序名称,其逻辑如下:

此外,在附加到正在运行的 IIS 实例之后,我看到输入到表单中的信息通过了验证,但是没有授予对授权访问受限的页面的访问权限。

此外,用于部署的数据库填充了与开发数据库相同的值。

为什么提供程序在调试环境中运行良好时在部署后无法工作?

0 投票
3 回答
5391 浏览

asp.net-mvc-4 - 托管 MVC4 项目

我尝试搜索支持 MVC4 的托管公司,但我找不到任何 - 我想在线部署我的 MVC4 应用程序,但我不知道有一家价格合理的托管公司。你能给我一份清单吗?