视图没有选择MVC .NET CSS

时间:2010-10-01 01:59:27

标签: c# model-view-controller asp.net-mvc-2

我正在开发一个MVC2网站,并且在查看我的视图上的对象以继承css类时遇到问题。

这是我的助手对象和CSS保存在Site.css中,该对象在母版页中链接。

如果我将CSS放在母版页上的标签中,这也可以正常工作。

<%= Html.ListBox("ExpenseItems", (System.Web.Mvc.SelectList)ViewData["ExpenseDefinitions"], new { @class = "optionlist" })%>

.optionlist
{
    width:100px;
    height:100px;
}

Browser HTML:
..
<link href="../Content/Site.css" rel="stylesheet" type="text/css" />
..
<select class="optionlist" id="ExpenseItems" multiple="multiple" name="ExpenseItems">
<option value="1">Test</option>
</select>

2 个答案:

答案 0 :(得分:1)

想出来......无法将样式应用到列表中。

某种原因,你需要将它应用于div然后应用于CSS中的控件。

示例:

CSS:
.optionlist select
{
     width:100px;
     height:100px;
}

<div class="optionlist">
... Lisbox
</div>

答案 1 :(得分:0)

当您以这种方式链接您的css文件时,如果您正在浏览具有此类http://yoursite.com/MyPage/Content/Article的网页的页面,当然会找不到css文件,因为它会这样。

css file mapped in `../Content/Sites.css`
Page is `/MyPage/Content/Article` 
css real content is placed in `/Content`
when the parser looks for the css it looks in `/MyPage/Content/Site.css`
which is not where it where it is.

我的建议是在你的css链接中添加一个基本网址

<%
    string baseUrl = "http://" + Request.Url.Host + (Request.Url.Port != 80 ? ":" + Request.Url.Port.ToString() : "");
$>
<link href=<%=baseUrl%>/Content/Site.css rel="stylesheet" type="text/css" />

不要将"放在链接标记的