Visual Studio 2012 SP3在设计视图中使用ASP.NET时更改链接href
本文关键字:NET ASP href 链接 SP3 2012 Studio 视图 Visual | 更新日期: 2023-09-27 18:21:57
我使用的是VS 2012 SP3,其中有一个ASP.NET网站。在我的"Default.aspx"中,我有以下链接
<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" runat="server" rel="stylesheet" />
每当我为我的页面使用设计视图时,比如在表中插入新行,就会将其更改为
<link href="http://localhost:50309/netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" runat="server" rel="stylesheet" />
这变得很烦人。
有人知道如何禁用此功能吗?
我还想指出的是,我已经安装了Productivity Power Tools 2012 Web Essentials 2012(但我已经禁用了它们,但仍然没有运气谢谢
更新1:复制步骤
创建一个新的.aspx页面
在头标记之间粘贴
<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet" />
。转到拆分视图
在divs 之间写一些文本
href更改为
<link href="http://localhost:50309/netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet" />
(端口可能有所不同:D)
更新2:Microsoft Bug报告连接链接
https://connect.microsoft.com/VisualStudio/feedback/details/793557/visual-studio-2012-changing-link-href-when-using-asp-net-in-design-view#details
使用ASP.NET脚本捆绑包时,可以提供可以在其中找到脚本库的CDN位置。当你还在本地添加代码时,你可以根据非缩小版本进行调试,而CDN版本将在网站生产运行时使用。
请参阅以下有关在ASP.NET Web窗体上设置脚本捆绑包的文档。
基本上,您需要在Global.asax:中添加几行
void Application_Start(object sender, EventArgs e)
{
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
然后按如下方式创建捆绑包:
public static void RegisterBundles(BundleCollection bundles)
{
//bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
// "~/Scripts/jquery-{version}.js"));
bundles.UseCdn = true; //enable CDN support
//add link to jquery on the CDN
var jqueryCdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js";
bundles.Add(new ScriptBundle("~/bundles/jquery",
jqueryCdnPath).Include(
"~/Scripts/jquery-{version}.js"));
// Code removed for clarity.
}
并这样引用它:
<asp:PlaceHolder runat="server">
<%: Scripts.Render("~/bundles/modernizr") %>
<%: Scripts.Render("~/bundles/jquery") %>
<%: Scripts.Render("~/bundles/jqueryui") %>
</asp:PlaceHolder>
这应该会让浏览器和编辑器都满意。
您还可以使用以下代码将<scriptmanager>
配置为自动回退到CDN:
<asp:ScriptManager runat="server" EnableCdn="true">
<Scripts>
<asp:ScriptReference Name="jquery" />
<asp:ScriptReference Name="jquery.ui.combined" />
</Scripts>
</asp:ScriptManager>
这种配置:
var mapping = ScriptManager.ScriptResourceMapping;
// Map jquery definition to the Google CDN
mapping.AddDefinition("jquery", new ScriptResourceDefinition
{
Path = "~/Scripts/jquery-2.0.0.min.js",
DebugPath = "~/Scripts/jquery-2.0.0.js",
CdnPath = "http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js",
CdnDebugPath = "https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.js",
CdnSupportsSecureConnection = true,
LoadSuccessExpression = "window.jQuery"
});
// Map jquery ui definition to the Google CDN
mapping.AddDefinition("jquery.ui.combined", new ScriptResourceDefinition
{
Path = "~/Scripts/jquery-ui-1.10.2.min.js",
DebugPath = "~/Scripts/jquery-ui-1.10.2.js",
CdnPath = "http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js",
CdnDebugPath = "http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.js",
CdnSupportsSecureConnection = true,
LoadSuccessExpression = "window.jQuery && window.jQuery.ui && window.jQuery.ui.version === '1.10.2'"
});
阅读以下Scott Hanselman的博客了解更多详细信息。
VS设计器对链接标记中的URI格式很挑剔,它会"修复"任何不赞成的href。结果并不总是有帮助的。
在您的情况下,问题是您的href缺少方案名称。如果你像这样更改链接标签,VS应该停止重写你的href:
<link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet" type="text/css" />
旁注:修复href后,设计器可能会抱怨无法编辑样式表。我不知道为什么它会对这个特定的文件这样做,我也没有见过它对其他CSS这样做。只要忽略警告,样式表就应该正确应用。