我有一个使用Razor视图引擎在ASP.NET MVC中运行的大型站点.
我有一个基本样式表,其中包含整个站点的所有通用样式.但是,有时候,我在页面中有页面特定的样式<head>- 通常这是一行或两行.
我并不特别喜欢将CSS放入<head>其中并不严格区分关注点,但对于一两行,这确实是特定于该页面的,我更喜欢不必附加另一个文件并添加到带宽中.
我有一个实例虽然我想将页面特定的媒体查询放入其中<head>,但因为媒体查询使用@符号和括号{}它与剃刀语法冲突:
@section cphPageHead{
<style>
/* PAGE SPECIFIC CSS */
...
@media only screen and (max-width : 960px) <-- the @ symbol here is clashing!
{
... }
}
</style>
}
Run Code Online (Sandbox Code Playgroud)
有没有办法解决这个问题?
我刚刚开始了一个新的MVC 3项目.任何人都可以告诉我什么
<add key="webpages:Enabled" value="false" />
Run Code Online (Sandbox Code Playgroud)
在我的web.config文件中吗?
我正在研究MVC3项目并收到以下错误:
分析器错误消息:无法加载类型'GodsCreationTaxidermy.MvcApplication'.
来源错误:
第1行:
<%@ Application Codebehind="Global.asax.cs" Inherits="GodsCreationTaxidermy.Core.MvcApplication" Language="C#" %>
我得到的错误是无法加载GodsCreationTaxidermy.Core.MvcApplication但在此屏幕截图中Core部分未显示在错误中:

有没有人对此错误有任何想法或解决方案?
这是默认MVC 3模板中的About.cshtml:
@{
ViewBag.Title = "About Us";
}
<h2>About</h2>
<p>
Put content here.
</p>
Run Code Online (Sandbox Code Playgroud)
我希望能找到对_ViewStart文件的引用About.cshtml,但显然不是.
我看着在global.asax和web.config,但我不能找出如何将About.cshtml文件"链接"从_ViewStart文件的布局.
一切都按预期工作,我只想知道引擎盖下发生了什么......
我有一个ASP.NET MVC 3应用程序.此应用程序通过JQuery请求记录.JQuery回调一个以JSON格式返回结果的控制器动作.我无法证明这一点,但我担心我的数据可能会被缓存.
我只希望将缓存应用于特定操作,而不是所有操作.
是否有一个属性可以放在一个动作上以确保数据不会被缓存?如果没有,我如何确保浏览器每次都获得一组新记录而不是缓存集?
我正在尝试为输入添加一个类.
这不起作用:
@Html.EditorFor(x => x.Created, new { @class = "date" })
Run Code Online (Sandbox Code Playgroud) 如何在Razor视图中从web.config访问键值.
这是我web.config在Web项目的根级别.
<appSettings>
<add key="myKey" value="MyValue"/>
</appSettings>
Run Code Online (Sandbox Code Playgroud)
我想在Razor视图中使用密钥.
谢谢.
布局页面头:
<head>
<link href="@Url.Content("~/Content/themes/base/Site.css")"
rel="stylesheet" type="text/css" />
</head>
Run Code Online (Sandbox Code Playgroud)
应用程序需要的View(AnotherView):
<link href="@Url.Content("~/Content/themes/base/AnotherPage.css")"
rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)
和AnotherView有一个局部视图(AnotherPartial)需要:
<link href="@Url.Content("~/Content/themes/base/AnotherPartial.css")"
rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)
问题:我们如何将这些CSS文件链接添加到Layouthead和AnotherPartial链接到Layout头?
RenderSection不是一个好主意,因为AnotherPage可以有多个Partials.添加所有CSS到头部是没用的,因为它将动态更改(它取决于Anotherpages).
Dunno如果在PR或Beta中发生这种情况,但如果我创建了一个扩展方法HtmlHelper,则在Razor驱动的页面中无法识别:
namespace SomeNamespace.Extensions {
public static class HtmlExtensions {
public static string Foo(this HtmlHelper html) {
return "Foo";
}
}
}
Run Code Online (Sandbox Code Playgroud)
我把它添加到以下<Namespaces>部分Web.config:
<pages>
<namespaces>
<add namespace="System.Web.Mvc" />
<!-- snip -->
<add namespace="SomeNamespace.Extensions"/>
</namespaces>
</pages>
Run Code Online (Sandbox Code Playgroud)
但是在尝试查看页面时会抛出编译错误:
@Html.Foo()
Run Code Online (Sandbox Code Playgroud)
如果我使用WebForms重新创建页面,它可以正常工作.这是怎么回事?
解决方法
如果我@using SomeNamespace.Extensions在我的Razor视图中包含它,那么它可以工作,但我更愿意将它包含在内Web.config
为什么默认情况下在添加新的"编辑"视图时会更改这些内容?使用EditorFor()vs.有什么好处TextboxFor()?
我找到了这个
默认情况下,Create和Edit脚手架现在使用Html.EditorFor助手而不是Html.TextBoxFor助手.当"添加视图"对话框生成视图时,这会以数据注释属性的形式改进对模型元数据的支持.
asp.net-mvc-3 ×10
razor ×6
asp.net-mvc ×5
.net ×2
asp.net ×1
c# ×1
css ×1
html-helper ×1
jquery ×1