相关疑难解决方法(0)

ASP.NET MVC默认路由?

我创建了一个新的ASP.NET MVC项目并实现了站点授权过滤器.

当我将路由映射到该{controller}/{action}对时,我将一个role ="SomeRole"默认传递给该路由.

如果我通过完整的url(http://localhost/somecontroller/someaction)并指定了完整的路径,它的工作原理非常好

MapRoute("SomeAction", "somecontroller/someaction",
 new { controller = "SomeController", action = "SomeAction", role = "SomeRole");
Run Code Online (Sandbox Code Playgroud)

问题是,当有人访问时http://thesiteaddress.com,必须有一个默认路由,/home/index而不是/和我指定

MapRoute("Default", new { controller="somecontroller",action="action" });
Run Code Online (Sandbox Code Playgroud)

然后我失去role="SomeRole"了以前的MapRoute.

我怎么解决这个问题?

asp.net-mvc routing asp.net-mvc-routing

18
推荐指数
3
解决办法
6万
查看次数

我应该在数据库中的URL中存储空格吗?如果是这样,在将它们放入<a href="...">时,如何对它们进行编码?

在我的博客中,我将URI存储在实体上以允许它们被定制(和友好).最初,它们可以包含空格(例如"/tags/ASP.NET MVC"),但W3C验证表明空格无效.

这个System.Uri类需要空格,并且似乎按照我想要的方式对它们进行编码(例如/tags/ASP.NET MVC变成/tags/ASP.NET%20MVC),但是我不想创建一个Uri只是扔掉它,这感觉很脏!

注意:没有Html.Encode,Html.AttributeEncode并且Url.Encode将编码"/tags/ASP.NET MVC"为"/tags/ASP.NET%20MVC".


编辑:我编辑了DataType我的问题部分,因为事实证明DataType没有直接提供任何验证,并且没有内置的URI验证.我在dataannotationsextensions.org上找到了一些额外的验证器,但它只支持绝对URI,它看起来像空格我也有效.

asp.net-mvc w3c-validation data-annotations razor

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