我正在努力熟悉ASP.NET上的MVC。我有我的global.asax
routes.MapRoute("Dept", "Dept/Invoice/{Category}/{Name}",
new {controller = "Dept", action = "Invoice", Category = "", Name = ""});
Controller.cs代码获取数据并将其放在一个表中,这很好。我的HTML开始......
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<BMICPolicy.Dept>" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<link rel="Stylesheet" type="text/css" href="../../Content/Test.css" />
<html xmlns="http://www.w3.org/1999/xhtml">
样式表 -
body
{
font-family: Arial, Verdana, Book Antiqua, Sans-Serif;
font-size: 12px;
width: 100%;
height: 100%;
min-height: 100%;
text-align: center;
text-align: -moz-center;
padding: 0px;
margin: 0px;
position: relative;
}
table
{
border: solid 1px #000000;
border-collapse: collapse;
}
table td
{
padding: 5px;
border: solid 1px #000000;
}
table th
{
padding: 6px 5px;
background-color: #729FCB;
border: solid 1px #000000;
text-align: center;
}
thead
{
/*font-size: medium;*/
font: large, bold;
text-align: center;
}
我不确定为什么样式表仅在我输入“类别”时才起作用,当我在地址栏中键入名称时,我的样式表被完全忽略(正文字体样式,表格,td,th,thead,等等...)。我错过了什么吗?
答案 0 :(得分:3)
../../Content/Test.css
是一个相对URI,意思是“在当前位置的父文件夹的父文件夹中查找名为Content
的文件夹,并在该文件夹中找到一个名为{{1的文件}}
当您只输入一个类别时,您正在寻找名为Test.css
的{{1}}文件夹的兄弟。当您输入名称时,您正在寻找Dept
文件夹的兄弟。
或许您希望使用Content
作为样式表的路径。
答案 1 :(得分:0)
那是因为您当前的路径被视为嵌套的文件夹层次结构,并且相对路径根本不起作用(您的css正在Dept/Invoice/Content/Test.css
或类似的东西中搜索,这显然是不正确的)。这是样式和脚本文件的常见情况,尤其是当它们放在母版页中时。
在这种情况下,正确的做法是按照this thread中的说明使用Url.Content
。
Imho这比绝对路径更好。
答案 2 :(得分:0)
更改此行:
<link rel="Stylesheet" type="text/css" href="../../Content
/ Test.css“/&gt;
到此:
<link rel="Stylesheet" type="text/css" href="<%=ResolveUrl("~/Content/Test.css
“)%&gt;” /&GT;