小编rea*_*que的帖子

未找到路径控制器或未实现IController

我有一个语言选择的MVC4项目:

  • NL
  • FR

1主要部分:

  • 关于
  • 常见(菜单)
  • 联系
  • 常问问题

还有3个方面:

  • 管理员
  • 顾客

在每个区域中,我至少有一个控制器,例如在Admin中,我有控制器概述,其中包含一个index.aspx页面的相应视图文件夹概述.

主页和所有主页(关于,常见问题等)工作并可以访问).

但是,当我按照url:localhost:xxxx/en/admin/overview时,我收到错误

未找到路径'/ en/admin/overview'的控制器或未实现IController.

即使路线是正确的(我可以通过Route Debugger看到).错误页面还显示当我想加载主菜单项时抛出错误:

<nav id="site-navigation" class="eightcol">
    @Html.Action("MenuItems", "Common")
</nav>
Run Code Online (Sandbox Code Playgroud)

- 删除了代码,因为无关紧要 -

一切似乎都井井有条,但MVC似乎无法加载位于主要部分的菜单.

因此,问题的根源是:我可以授予一个区域(例如Admin)访问我项目主要部分(home,common,about等)中的控制器吗?

c# asp.net-mvc-areas asp.net-mvc-4

72
推荐指数
12
解决办法
13万
查看次数

使用C#在Windows 7中创建metro风格的winform

是否可以在Windows 7的visual studio 10或visual studio 11中设计地铁风格的winform?如果是这样,我在哪里可以找到有关如何操作的信息?我已经找到了一些链接,比如 http://msdn.microsoft.com/en-us/library/windows/apps/br211380 但我没有得到Windows Metro风格.

谁能帮我这个?

c# winforms microsoft-metro

19
推荐指数
3
解决办法
8万
查看次数

Formsauthentication.SetAuthCookie和Session之间的区别用法

我似乎找不到这个看似简单的问题的答案。

使用第一个或后面的有什么区别?我为什么要使用第一个?

在MSDNAA上,我发现以下有关Formsauthentication.setCookie()的信息:

为提供的用户名创建身份验证票证,并将其添加到响应的cookie集合中;如果使用的是无cookie身份验证,则将其添加到URL。

关于会议:

ASP.NET会话状态使您可以在用户浏览组成Web应用程序的不同ASP.NET页面时为用户存储和检索值。HTTP是一种无状态协议,这意味着您的Web服务器将页面的每个HTTP请求都视为一个独立请求;默认情况下,服务器不保留先前请求中使用的变量值的知识。结果,构建需要维护一些交叉请求状态信息的Web应用程序(实现购物车,数据滚动等的应用程序)可能是一个挑战。ASP.NET会话状态标识会话期间有限的时间内从同一浏览器收到的请求,并提供在该会话持续时间内持久保存变量值的功能。

我对为什么使用会话cookie来检查用户是否正确登录时为什么要使用formsauthentication.SetAuthCookie感兴趣。

if(Session["LoggedIn"] != null) {
    ...Do something here that only logged in users are allowed to do...
} 
Run Code Online (Sandbox Code Playgroud)

cookies forms-authentication session-state

5
推荐指数
1
解决办法
2637
查看次数

只在十进制逗号前加上千位分隔符

我在stackoverflow上找到了一个正则表达式来添加','或'.' 每三个数字后,取决于您的语言.

(\d)(?=(\d\d\d)+(?!\d))
Run Code Online (Sandbox Code Playgroud)

问题是当我们达到小数点时也会发生这种情况,例如:

5487445.46878
Run Code Online (Sandbox Code Playgroud)

使用以下代码(和正则表达式)的结果是:

return number.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
Run Code Online (Sandbox Code Playgroud)

结果如下:

5,487,445.46,878
Run Code Online (Sandbox Code Playgroud)

当我根据你的语言转换一个数字时,我正在使用这个正则表达式.例如,在荷兰语中,逗号用作分隔符,因此我执行以下操作:

return number.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1.")
Run Code Online (Sandbox Code Playgroud)

结果如何

5.487.445,46.878
Run Code Online (Sandbox Code Playgroud)

这些当然需要成为:

5,487,445.46878
Run Code Online (Sandbox Code Playgroud)

5.487.445,4687
Run Code Online (Sandbox Code Playgroud)

有谁知道我需要更新正则表达式忽略小数点?

regex jquery currency

5
推荐指数
1
解决办法
3679
查看次数

使用现有数据库名称验证实现OWIN?

我希望按照我在这里找到的例子来实现OWIN:http: //www.asp.net/web-api/overview/security/individual-accounts-in-web-api

但是,由于这种工作方式对我来说是新的,特别是使用我自己创建的数据库,我想要一些指导.我可以毫无问题地提交我的注册请求.

帖子带我到AccountController:

    [AllowAnonymous]
    [Route("Register")]
    public async Task<IHttpActionResult> Register(RegisterBindingModel model)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }

        try { 
            var email = model.Email;
            var password = model.Password;

            var user = new users() {
                 Email = email,
                 PasswordHash = password,
                 Password = password
            };

            IdentityResult result = await UserManager.CreateAsync(user, model.Password);

            if (!result.Succeeded)
            {
                return GetErrorResult(result);
            }

            return Ok();
        }
        catch(Exception ex)
        {
            throw;
        }
    }
Run Code Online (Sandbox Code Playgroud)

这会触发以下代码:

    public ApplicationUserManager UserManager
    {
        get
        {
            return _userManager ?? Request.GetOwinContext().GetUserManager<ApplicationUserManager>();
        }
        private …
Run Code Online (Sandbox Code Playgroud)

c# asp.net owin

5
推荐指数
1
解决办法
1020
查看次数

是否需要创建log4net实例/对象?

我在整个解决方案中使用log4net来满足我的日志需求(它有各种各样的项目,反过来有各种类).

是否真的需要始终创建一个实例(aka对象),如下所示:

private static readonly ILog log = LogManager.GetLogger(typeof(MyApp));
Run Code Online (Sandbox Code Playgroud)

或者我这样做的方式:

private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
Run Code Online (Sandbox Code Playgroud)

要使用log4net吗?是否有替代方案,以便我不必在课堂上这样做,因此需要更少的副本和粘贴:-)?

c# logging log4net

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

AES的安全性如何解决字节数组在C#中编码的问题?

我有一个字节数组,使用AES加密,密码使用SHA-256加密.一切都很完美,但我想知道最后一部分,我必须编码由于加密而得到的字节数组.重要的是,最终结果的稳健性如何加密字节数组,Base64,转换为十六进制值,还有其他什么?

从逻辑上讲,它并不重要,因为实际上没有那么多的编码方法,并且大多数时候使用最明显的编码方法Base64.但是,由于我不熟悉密码学,我只想确定.

以字节数组为例(以字节的随机数组为例):

    [0] 182 
    [1] 238 
    [2] 54
    [3] 24  
    [4] 69  
    [5] 224 
    [6] 105 
    [7] 13  
    [8] 5   
    [9] 52  
    [10]112 
    [11]71  
    [12]250 
    [13]163 
    [14]234 
    [15]234
Run Code Online (Sandbox Code Playgroud)

这给出了Base64中的可能结果(随机结果,上面不匹配):

ou+yUEkilfrGIF3HBH08vu8A==
Run Code Online (Sandbox Code Playgroud)

使用BitConvertor将其转换为十六进制值给出(随机结果,上面不匹配):

A2EBCA1945E8BC920532F068D27BAEF1
Run Code Online (Sandbox Code Playgroud)

将上述结果转换回相应的字节数组很简单,然后才开始执行硬部分.

c# aes

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

TripleDESCryptoServiceProvider指定的密钥不是此算法的有效大小,为128字节?

我正在尝试将我的加密解密功能从DES更新为TripleDES.但是,当我尝试将我的密钥和iv字节数组大小从8增加到128时:

byte[] key = new byte[128], iv = new byte[128];
TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();
Run Code Online (Sandbox Code Playgroud)

其中8用于DESCryptoServiceProvider而128现在用于TripleDESCryptoServiceProvider我总是得到相同的错误:

Specified key is not a valid size for this algorithm.
Run Code Online (Sandbox Code Playgroud)

即使我的字节数组已完整填写.

我究竟做错了什么?是否有任何要求除了长度允许我的密钥和iv用于创建加密器?

c# encryption tripledes

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