基本上我有一个使用ASP.NET MVC构建的CMS后端,现在我正在进入前端站点,需要能够根据输入的路由从我的cms数据库加载页面.
因此,如果用户输入domain.com/students/information,MVC将查看页面表以查看是否存在具有与学生/信息匹配的永久链接的页面,如果是,则将重定向到页面控制器然后加载页面来自数据库的数据并将其返回到视图以供显示.
到目前为止,我已尝试捕获所有路径,但它仅适用于两个URL段,因此/学生/信息,但不是/ students/information/fall.我在网上找不到任何关于如何实现这一点的内容,所以我会在这里问一下,在我找到并开源ASP.NET MVC cms并剖析代码之前.
这是我到目前为止的路由配置,但我觉得有更好的方法来做到这一点.
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
// Default route to handle core pages
routes.MapRoute(null,"{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
new { controller = "Index" }
);
// CMS route to handle routing to the PageController to check the database for the route.
var db = new MvcCMS.Models.MvcCMSContext();
//var page = db.CMSPages.Where(p => p.Permalink == )
routes.MapRoute(
null,
"{*.}",
new { controller = "Page", action = "Index" } …Run Code Online (Sandbox Code Playgroud) 我的一个同事创建了一个基本的联系我们类型形式,它修饰了重音字符(è,é,à等).我们在Struts 1上使用KonaKart作为Java电子商务平台.
我已经将问题缩小到通过HttpServletRequest对象传入的数据.比较一个类似(正常运行)的表单,我注意到在旧表单上,请求对象的Character Encoding(request.getCharacterEncoding())返回为"UTF-8",但在新表单上它返回为NULL,并且文本从request.getParameter()已经被破坏了.
除此之外,我还没有发现已知良好形式与新破形式之间存在任何显着差异.
我已经排除的事情:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><%@page contentType="text/html;charset=UTF-8" language="java" %>标记中使用相同的属性如果我将它们从ISO-8859-1转换为UTF-8,它的效果很好,但我更愿意找出核心问题.例如:new String(request.getParameter("firstName").getBytes("ISO-8859-1"),"UTF8")
欢迎提出任何建议,我完全没有想法.
在使用MVC框架一段时间后,我必须说我喜欢它,但在我看来,总有一件事就是在MVC派对蛋糕上大吃一惊.缺乏良好,可重复使用和便携的"控件".这就是HtmlHelpers应该加入的地方.
在阅读了这篇博文之后,我开始思考我对HtmlHelper的期待是什么,我希望将其公之于众,以便其他(更聪明)的人能够加入我的努力.
这样,任何开发人员都可以轻松使用某些HtmlHelper,而无需阅读整个文档.我喜欢JQuery通常这样做,所以也许模仿这个是个好主意.
用stringbuilders编写Html只是一种痛苦.如果我们可以在Html或asp文件中编写Html以后编译到dll中,这不是很好吗?
我想我不是唯一一个用asp:contentholder专门为他的javascript和css构建他的主页的人.最好是底部的js和页面顶部的css.如果HtmlHelper可以将所需的引用和脚本块放在那里,那不是很好吗?也许检查双重参考..
目前我觉得每个人都只是在他们自己的私人图书馆中一遍又一遍地重建相同的轮子.如果我们有一些存储库,那么我们可以将所有这些工作结合在一起,这不是很好吗?
我错过了这条线上已有的努力吗?如果不是,你认为这是一个有用的想法?你会成为参与者吗?
我在操作系统方面的经验很少,但我觉得这可能是社区所渴望的.有没有更多os项目xp的人看到了这个中的任何陷阱?
在我们的代码中有很多段落都是ifdef'ed.使用以前版本的Visual Studio,它们已经变灰了.但是,使用Visual Studio 2012时,它们不再灰显,而是变暗,即这些段落显示语法高亮方案的所有颜色,但颜色饱和度较低.微软的程序员实现这一点必须认为这非常酷,但实际上它很难判断一个段落是活动的还是非活动的.
有没有人找到一种方法来欺骗Visual Studio 2012使用旧的方式来显示非活动段落?
谢谢你的回复
为了序言,我不使用Java或Struts,但我理解代码中发生了什么.在编写代码时,我很无能为力.我正在与KonaKart合作,他们使用struts tile来显示布局.
这是jsp片段:
<div class="siderBox noMargin">
<div class="siderBoxTop"></div>
<div class="siderBoxContent">
<tiles:insert attribute="leftTile1" />
</div>
<div class="siderBoxBottom"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
根据当前页面的不同,leftTile1其值可能Empty.jsp只是一个空页面(例如,leftTile5和leftTile6):
<put name="leftTile5" value="/WEB-INF/jsp/InformationTile.jsp"/>
<put name="leftTile6" value="/WEB-INF/jsp/Empty.jsp"/>
Run Code Online (Sandbox Code Playgroud)
如果图块有一个空页面,那么该框仍然出现,我留下所有这些空白框.有没有办法获取属性值而不显示图块(即.if(leftTile1.attribute!="/WEB-INF/jsp/Empty.jsp"){ //show the content; })?
在最糟糕的情况下,我可以浏览所有30个jsp文件,并使用页眉和页脚封装内容.
当前输出的屏幕截图以及我想要摆脱的内容:

我试图通过UBISLATE在设备DATAWIND上运行和调试我的应用程序.
如何找到USB供应商ID?