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-core – 如何使用.net Core设置离线开发
- asp.net – 我可以在MasterPage中使用UpdatePanel来包装嵌套
- 如何调查ASP.net应用程序上的SQL Server超时错误?
- asp.net – 为什么<%=%>标记呈现为“<%=%>”?
- asp.net-mvc – 在Asp.Net Core上传图片?
- asp.net-ajax – 建议使用不引人注意的AJAX与MVC 5?
- .net – StructureMap单例因参数而异吗?
- asp.net-mvc-3 – 可用会员入门套件/成员资料用于ASP.NET M
- asp.net – 通过文本查找DropDownList索引
- asp.net – Async / Await vs TPL vs WCF Service vs Web A
- asp.net-mvc – MVC – 视图中的多个模型
- 如何在ASP.net中获取页面中的主页?
- 在ASP.NET Core中给上传图片功能添加水印
- asp.net-web-api2 – 如何在WebAPI中使用Swagger
- asp.net – 在部分视图中强制使用没有Html.Begin
- ASP.NET Core 2.0 Identity中的Cookies.Applicat
- asp.net-mvc – 使用NHibernate和Autofac管理多个
- .net – ASP MVC HTML Helpers – 好还是坏?
- asp.net-mvc – 使用Universal Providers的ASP.N
- asp.net – 水晶报告数据源到业务层对象集合