asp.net-mvc – Razor MVC4 Url.Action无效
我在剃刀视图中有如下代码
<a href="@Url.Action("Details","Mycontr",new {id =16},Request.Url.Scheme)"> 当我双击这个项目时,它被重定向到Url下面 http://localhost:49280/Mycontr/Section/@Url.Action( 但是预期的却是 http://localhost:49280/Mycontr/Details/16 以下是RouteConfig routes.MapRoute( name: "Capsule",url: "Mycontr/Details/{id}",defaults: new { controller = "Mycontr",action = "Details",id = UrlParameter.Optional } ); routes.MapRoute( name: "Section",url: "Mycontr/Section/{id}",action = "Section",id = UrlParameter.Optional } ); 请建议. 我缩小了这个问题. Html.Raw导致问题.我有类似的代码 @Html.Raw(HttpUtility.HtmlDecode(Model.sContent)) 该变量包含生成的具有Ur.Action的html.如果我只是直接将html生成的代码放在razor视图中而不使用Html.Raw它工作正常.但是,如果我拿出Html.Raw运行时生成的html脚本显示为 <style type='text/css'></style><center><div style="width:460px;"><div style="width: 460px; float: left;"><div s... 有没有办法可以在不使用Html.Raw编码的情况下在变量中显示html脚本? 下面是我一直在努力使其工作的最新代码.请帮忙. string templFile = string.Format("{0}DivTemplate.htm",path); HtmlDocument divDoc = new HtmlDocument(); StreamReader sRdr = new StreamReader(templFile,Encoding.UTF8); divDoc.Load(sRdr); XmlNodeList divs = regions.ChildNodes; IEnumerator enmrDivs = divs.GetEnumerator(); while (enmrDivs.MoveNext()) { XmlNode node = (XmlNode)enmrDivs.Current; string divId = node["DivId"].InnerText; string capId = node["CapsuleId"].InnerText; HtmlString sUrlAct = new HtmlString("@Url.Action("Capsule","Publication",new { id=""+capId+"" }))"); //string sUrlAct = "@Url.Action("Capsule",new { id=""+capId+""})"; string divFile = string.Format("{0}{1}.htm",path,divId); HtmlDocument divRgnDoc = new HtmlDocument(); StreamReader sR = new StreamReader(divFile,Encoding.UTF8); divRgnDoc.Load(sR); foreach (HtmlNode link in divRgnDoc.DocumentNode.SelectNodes("//a[@href]")) { link.Attributes.RemoveAll(); link.Attributes.Add("href",sUrlAct.ToString()); } HtmlNode divNode = divDoc.GetElementbyId(divId); divNode.AppendChild(divRgnDoc.DocumentNode.FirstChild.CloneNode(true)); sR.Close(); } sContent = new HtmlString (divDoc.DocumentNode.InnerHtml); sRdr.Close(); 解决方法
我知道它有点晚了,但是当我在搜索某些东西时,我遇到了这个帖子.
在您的代码中,问题在于您的锚标记和双引号. <a href="@Url.Action("Details",Request.Url.Scheme)"> 您在技术上告诉解析器您引用了“URL”(双引号)之间的超链接,这意味着href是@ Url.Action(.您可以这样做(使用单引号分配您的href)并希望它有效 <a href='@Url.Action("Details",Request.Url.Scheme)'> 现在你href将是@ Url.Action(“详细信息”,“Mycontr”,新{id = 16},Request.Url.Scheme) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 使用Windows身份验证与活动目录组作为角色
- ASP.NET Identity外部认证提供程序自定义图标
- 使用Asp.Net Core Web API文件上传文件始终为null
- 将数据从ASP.net返回到ExtJS网格
- iis-7.5 – aspnet_compiler无法映射路径’/’
- asp.net-mvc – 带有ASP.NET标识的MVC 5 – 用户登录时获取
- asp.net – Corp IT Systems的方向.投资A还是B?
- asp.net-mvc-3 – 日期选择器透明背景开箱即用?
- asp.net – 刷新大内容后的Kendo UI窗口
- 在不刷新ASP.NET网页上的整个页面的情况下刷新内容的最佳布
- asp.net-mvc-3 – 您可以编辑CSHTML而无需再次构
- 经典ASP错误’80020009’发生异常
- asp.net – 如何检查IIS是否在32位或64位模式
- asp.net-mvc – 如何测试ASP MVC应用程序以获得基
- asp.net – 将代码从Subversion Repository部署到
- 在视图中确定ASP.NET Core环境名称
- 如何将现有的ASP.NET网站转换为HTML 5
- asp.net-web-api2 – 创建新的IHttpActionResult
- asp.net – 如何创建一个HTML Helper来扩展TextB
- asp.net-core – ASP.NET 5空应用程序IRuntimeEn