我有一个语言选择的MVC4项目:
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等)中的控制器吗?
是否可以在Windows 7的visual studio 10或visual studio 11中设计地铁风格的winform?如果是这样,我在哪里可以找到有关如何操作的信息?我已经找到了一些链接,比如 http://msdn.microsoft.com/en-us/library/windows/apps/br211380 但我没有得到Windows Metro风格.
谁能帮我这个?
我似乎找不到这个看似简单的问题的答案。
使用第一个或后面的有什么区别?我为什么要使用第一个?
在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) 我在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)
有谁知道我需要更新正则表达式忽略小数点?
我希望按照我在这里找到的例子来实现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) 我在整个解决方案中使用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吗?是否有替代方案,以便我不必在课堂上这样做,因此需要更少的副本和粘贴:-)?
我有一个字节数组,使用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)
将上述结果转换回相应的字节数组很简单,然后才开始执行硬部分.
我正在尝试将我的加密解密功能从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用于创建加密器?