小编Ray*_*Ray的帖子

如何在ASP.NET MVC中实现动态控制器和动作方法?

在Asp.net MVC中,网址结构如下

http://example.com/ {controller}/{action}/{id}

对于每个"控制器",比如http://example.com/blog,都有一个BlogController.

但是我的{controller}部分的url不是预先决定的,但它是在运行时动态确定的,我如何创建一个"动态控制器",将任何东西映射到同一个控制器,然后根据该值确定什么去做?

与{action}相同,如果我的网址的{action}部分也是动态的,有没有办法对此方案进行编程?

asp.net-mvc-routing asp.net-mvc-controller asp.net-mvc-2

26
推荐指数
2
解决办法
2万
查看次数

我在哪里可以更改VS10中的Asp.net MVC 3 Razor语法高亮?

我搜索了工具>选项,但在VS10中我可以关闭或更改ASP.NET MVC 3中@nuggets上新Razor视图的默认突出显示?

syntax-highlighting visual-studio-2010 razor asp.net-mvc-3

23
推荐指数
1
解决办法
5087
查看次数

What's the difference between using the constructor in VS Testing framework vs. TestInitialize() attribute?

快问,我正在使用Visual Studio的测试框架进行单元测试.只是想知道使用构造函数进行初始化工作与使用[TestInitialize()]属性的方法有什么区别?

unit-testing visual-studio

22
推荐指数
2
解决办法
8107
查看次数

何时在数据库表之间使用1对1关系?

数据库设计问题:您何时决定使用1对1关系表?

我看到的其中一个地方是,例如,当你有一个User和UserProfile表时,人们会拆分它们而不是将所有列放在User表中.

从技术上讲,您可以将所有列放在一个表中,因为它们的关系是1对1.

我知道有人说对于UserProfile表,随着时间的推移你需要改变表来添加更多的列,但我真的不认为这是拆分表的强有力的理由.

所以,如果我要设计一个User表和UserProfile表,那么在一个表中执行它会更好吗?

database-design database-relations

21
推荐指数
4
解决办法
2万
查看次数

如何拦截所有ASP.NET WebApi控制器操作方法调用Ninject拦截进行日志记录?

每次调用ASP.NET WebApi控制器的一个操作方法时,我们公司都需要记录某些内容.由于我们现在使用Ninject作为DI,我们也想将它用于此目的.这是我到目前为止所尝试的.

我有通过NuGet安装的Ninject,Ninject.Extensions.Interception和Ninject.Extensions.Interception.DynamicProxy,我有以下模块

public class InterceptAllModule : InterceptionModule
{
    public override void Load()
    {
        Kernel.Intercept(p => p.Request.Service.Name.EndsWith("Controller")).With(new TimingInterceptor());
    }
}
Run Code Online (Sandbox Code Playgroud)

TimingInterceptor的位置

public class TimingInterceptor : SimpleInterceptor
{
    readonly Stopwatch _stopwatch = new Stopwatch();
    protected override void BeforeInvoke(IInvocation invocation)
    {
        _stopwatch.Start();
    }

    protected override void AfterInvoke(IInvocation invocation)
    {
        _stopwatch.Stop();
        string message = string.Format("[Execution of {0} took {1}.]",invocation.Request.Method,_stopwatch.Elapsed);
        Log.Info(message + "\n");
        _stopwatch.Reset();
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试使用ninject内核挂起模块时,运行我的站点

var kernel = new StandardKernel(new InterceptAllModule());
Run Code Online (Sandbox Code Playgroud)

但是,只要有一个调用进入其中一个操作方法,它就会抛出一个错误说

Cannot instantiate proxy of class: MyApiController.
Run Code Online (Sandbox Code Playgroud)

有经验的人可以指出我做错了吗?谢谢.

asp.net-mvc logging ninject ninject-interception asp.net-web-api

20
推荐指数
1
解决办法
2万
查看次数

如何使用Visual Studio命令执行集成测试?

关于使用VS 2010进行集成测试,我有两个问题

首先,我真的需要找到一种方法来按照我想要的顺序执行这些测试方法.注意:我知道在单元测试中,方法应该从其他任何东西独立运行,但这些是集成测试,我依赖于首先运行哪个方法的顺序.

同样,有没有办法通过运行测试来保持局部变量?例如,以下代码现在失败了.

[TestClass]
public class UnitTest1
{
    int i = 0;
    [TestMethod]
    public void TestMethod1()
    {
        i = 5;
    }

    [TestMethod]
    public void TestMethod2()
    {
        Assert.AreEqual(5, i);
    }
}
Run Code Online (Sandbox Code Playgroud)

那么有没有办法做到这些呢?

testing integration-testing visual-studio-2010

18
推荐指数
2
解决办法
1万
查看次数

为什么 dotnet --list-sdks 不显示 Windows 10 上已安装的 SDK?

我在Windows 10上安装了Microsoft .NET SDK 5.0.102 (x64),但是当我执行任何操作时没有显示任何内容?我可以看到从 Windows 应用程序和功能安装的 SDK。谢谢。dotnet --list-sdks

编辑:

执行dotnet --info显示以下内容

$ dotnet --info

Host (useful for support):
  Version: 5.0.2
  Commit:  cb5f173b96

.NET SDKs installed:
  No SDKs were found.

.NET runtimes installed:
  Microsoft.AspNetCore.App 3.1.9 [C:\Program Files (x86)\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 3.1.11 [C:\Program Files (x86)\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 5.0.0 [C:\Program Files (x86)\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 5.0.2 [C:\Program Files (x86)\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 3.1.9 [C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.1.11 [C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 5.0.0 [C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 5.0.1 [C:\Program Files …
Run Code Online (Sandbox Code Playgroud)

.net-5

16
推荐指数
3
解决办法
1万
查看次数

嘲笑傻瓜?

我是嘲笑的新手,我有一个新的.net web项目,在UI-> BLL-> DAL-> DB结构中,我目前使用NUnit进行一些测试.我打算用它来测试中间层,所以我不必实际写入DB.

现在,我从来没有做过任何嘲弄,也不知道从哪里开始,所以我正在寻找一个具有端到端样本的模拟框架!有人能指出一些从一开始就有一些嘲弄的材料吗?

谢谢,

射线.

.net c# asp.net unit-testing mocking

15
推荐指数
2
解决办法
1725
查看次数

Azure WebJobs - 未找到任何功能 - 如何进行无触发工作?

我是Azure WebJobs的新手,我运行了一个示例,其中用户将图像上传到blob存储并将记录插入到队列中,然后作业从队列中检索该记录作为信号来执行调整上传图像的大小.基本上在代码中,作业使用QueueTrigger公共静态方法的属性来完成所有这些操作.

现在我需要一个工作,就像每小时将一条记录插入数据库表,它没有任何类型的触发器,它只是自己运行.我该怎么做呢?

我尝试了一个静态方法,并在其中我插入到db,工作确实开始,但我收到一条消息说:

找不到任何功能.尝试将作业类公开,方法公共静态.

我错过了什么?

编辑 维克多的回答后,我尝试了以下方法,

static void Main()
{
    JobHost host = new JobHost();
    host.Call(typeof(Program).GetMethod("ManualTrigger"));
}

[NoAutomaticTrigger]
public static void ManualTrigger()
{
    // insert records to db
}
Run Code Online (Sandbox Code Playgroud)

但这次我得到了InvalidOperationException,

无法从Azure WebJobs SDK调用"Void ManualTrigger()".是否缺少Azure WebJobs SDK属性?

c# azure azure-webjobs

15
推荐指数
1
解决办法
7965
查看次数

更新NuGet 1.6一直失败

我使用VS10,最近NuGet1.6出来了,我尝试进行正常更新,并且它仍然失败,并显示以下消息:

"安装错误:VSIXInstaller.SignatureMismatchException:'NuGet包管理器'更新版本上的签名与已安装版本上的签名不匹配.因此,Extension Manager无法安装更新.在VSIXInstaller.Common.VerifyMatchingExtensionSignatures(IInstalledExtension installedExtension,IInstallableExtension updateExtension)在VSIXInstaller.InstallProgressPage.BeginInstallVSIX(SupportedVSSKU targetAppID)"

然后我读到有人说只是卸载NuGet并重新安装它,我在Windows的控制面板中卸载了NuGet,因为VS10中的NuGet的卸载按钮显示为灰色(为什么会出现这种情况?).但是仍然无法安装NuGet1.6,它遇到了同样的错误.请有人帮忙!

谢谢.

visual-studio-2010 nuget

14
推荐指数
2
解决办法
3199
查看次数