asp.net-mvc – RavenDB Ids和ASP.NET MVC3路由
|
只需建立一个快速,简单的网站与MVC 3 RC2和RavenDB来测试一些事情. 我已经能够做一些项目,但我很好奇Html.ActionLink()如何处理一个raven数据库ID. 我的例子:我有一个称为“原因”的文档(一些原因,主要是文本),它具有原因文本和链接列表.我可以通过我的存储库添加,删除和做任何其他的事情. 以下是我的剃须刀视图的一部分,其中列出了项目符号列表中的每个原因,并使用“编辑”链接作为第一个文本: @foreach(var Reason in ViewBag.ReasonsList)
{
<li>@Html.ActionLink("Edit","Reasons","Edit",new { id = Reason.Id },null) @Reason.ReasonText</li>
<ul>
@foreach (var reasonlink in Reason.ReasonLinks)
{
<li><a href="@reasonlink.URL">@reasonlink.URL</a></li>
}
</ul>
}
问题 这个工作正常,除了编辑链接.虽然这里的值和代码似乎直接工作(即链接直接触发),但RavenDB将我的文档ID保存为“reason / 1”. 因此,当URL发生并通过ID时,生成的路由为“http:// localhost:4976 / Reasons / Edit / reason / 2”.所以,ID被正确附加,但是MVC将其解释为它自己的路由. 关于我如何能够解决这个问题的任何建议?我需要创建一个特殊的路线来处理它,还是有其他可以做的? 解决方法我刚刚下载了最新版本的RavenDB,并尝试了这一点.public class Entity {
public int Id { get;set; }
public string Text { get;set; }
}
当我将其保存到RavenDB中时,Raven中的ID为“entities / 1”,但是RavenDB客户端中的映射能够将Id从数据库中的内容成功解释为我想要的整数. var entity = session.Load<Entity>(1); Assert.IsTrue(entity.Id == 1); 您不需要扩展方法,这样您就不需要像上述那样更改任何路由,因为您将处理好的整数.字符串Ids几乎是一个交易破坏者,但令人惊讶的是,这是工作,所以RavenDB回到了狩猎. >注意:我从观看罗伯·阿什顿讲话中想出这一点,并意识到他所有的文档类都具有整数作为Ids. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 新安装的IIS. Aspx页面不会显示
- asp.net-mvc – 如何将Model字段值传递给javascript变量?
- .net – 如何从ModelState键中删除前缀?
- asp.net – 插入后在实体框架中获取记录ID
- asp.net-mvc-3 – ASP.Net MVC 3重定向未经授权的用户不登录
- 为什么asp.net会员资格有用户表和会员表?
- ASP.NET中操作SQL数据库(连接字符串的配置及获取)
- asp.net-web-api – Web API / MVC 6中的安全JSON Web令牌
- ASP.NET异步方法问题
- asp.net-mvc – Url.Action with RouteValueDictionary wit
- asp.net-mvc – 从业务逻辑类重定向asp.net mvc页
- 什么是asp.net会话超时的单位?
- asp.net – 什么是Thread.CurrentPrincipal,它有
- asp.net-core – Asp.net Core中的UserHostAddre
- asp.net – 是否有可能过滤SignalR中的接收器?
- asp.net – 什么时候在普通的HTML上使用runat =“
- log4Net EventlogAppender不适用于Asp.Net 2.0 W
- ASP.NET Webdeploy失败;项目中不存在AddSchedule
- asp.net-mvc – 十进制的最佳数据注释(18,2)
- ASP.NET 5中的子域路由
