如何在Razor View页面中导入命名空间?
我正在使用Razor作为视图引擎创建一个示例ASP.NET MVC 3站点.剃刀语法以@
字符开头,例如@RenderBody()
.如果我在我的cshtml页面上写@test,它会给我解析错误
CS0103:当前上下文中不存在名称"test"
如何逃脱'@'角色?
我已经在数据库表中保存了安全/清理的HTML.
如何在Razor视图中写出此HTML内容?
它总是逃避字符<
和&符号&
.
在view(cshtml
)中的JavaScript中使用Razor语法是否可行或有解决方法?
我正在尝试将标记添加到Google地图中...例如,我试过这个,但是我收到了大量的编译错误:
<script type="text/javascript">
// Some JavaScript code here to display map, etc.
// Now add markers
@foreach (var item in Model) {
var markerlatLng = new google.maps.LatLng(@(Model.Latitude), @(Model.Longitude));
var title = '@(Model.Title)';
var description = '@(Model.Description)';
var contentString = '<h3>' + title + '</h3>' + '<p>' + description + '</p>'
var infowindow = new google.maps.InfoWindow({
content: contentString
});
var marker = new google.maps.Marker({
position: latLng,
title: title,
map: map,
draggable: false
});
google.maps.event.addListener(marker, 'click', function () { …
Run Code Online (Sandbox Code Playgroud) 使用WebForms视图引擎,我通常会使用三元运算符来处理非常简单的条件,特别是在HTML属性中.例如:
<a class="<%=User.Identity.IsAuthenticated ? "auth" : "anon" %>">My link here</a>
Run Code Online (Sandbox Code Playgroud)
上面的代码将为<a>
标记提供一个类auth
或anon
取决于用户是否经过身份验证.
Razor视图引擎的等效语法是什么?因为Razor需要HTML标签来"知道"何时跳入和跳出代码和标记,所以我现在仍然坚持以下内容:
@if(User.Identity.IsAuthenticated) { <a class="auth">My link here</a> }
else { <a class="anon">My link here</a> }
Run Code Online (Sandbox Code Playgroud)
温和地说,这很可怕.
我很想做一些喜欢这一点,但我在努力了解如何在剃刀:
<a class="@=User.Identity.IsAuthenticated ? "auth" : "anon";">My link here</a>
Run Code Online (Sandbox Code Playgroud)
-
更新:
与此同时,我创建了这个HtmlHelper:
public static MvcHtmlString Conditional(this HtmlHelper html, Boolean condition, String ifTrue, String ifFalse)
{
return MvcHtmlString.Create(condition ? ifTrue : ifFalse);
}
Run Code Online (Sandbox Code Playgroud)
这可以从Razor这样调用:
<a class="@Html.Conditional(User.Identity.IsAuthenticated, "auth", "anon")">My link here</a>
Run Code Online (Sandbox Code Playgroud)
尽管如此,我希望有一种方法可以使用三元运算符而不会退回到扩展方法中.
在一个.NET MVC4
项目中如何@Styles.Render
运作?
我的意思是,它在@Styles.Render("~/Content/css")
哪个文件中调用?
我的文件夹中没有文件或名为"css"的Content
文件夹.
我在我正在建立的博客上使用Facebook评论插件.它有一些FBXML标记,由页面上引用的facebook javascript解释.
这一切都很好,但我必须将当前的,完全限定的URL传递给插件.
<div style="width: 900px; margin: auto;">
<div id="fb-root"></div>
<fb:comments href="URL HERE" num_posts="10" width="900"></fb:comments>
</div>
Run Code Online (Sandbox Code Playgroud)
获取当前页面的URL的最佳方法是什么?请求URL.
这是我的解决方案的最终代码:
<fb:comments href="@Request.Url.AbsoluteUri" num_posts="15" width="900"></fb:comments>
Run Code Online (Sandbox Code Playgroud) 我正在asp.net mvc 3中开发一个Web应用程序.我对它很新.在使用剃刀的视图中,我想声明一些局部变量并在整个页面中使用它.如何才能做到这一点?
能够执行以下操作似乎相当微不足道:
@bool isUserConnected = string.IsNullOrEmpty(Model.CreatorFullName);
@if (isUserConnected)
{ // meaning that the viewing user has not been saved
<div>
<div> click to join us </div>
<a id="login" href="javascript:void(0);" style="display: inline; ">join</a>
</div>
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用.这可能吗?
我一直在搜索SO和Google,了解可用于ASP.NET MVC的各种视图引擎,但是没有找到比视图引擎的简单高级描述更多的内容.
我不一定在寻找"最佳"或"最快",而是在各种情况下对主要参与者(例如默认的WebFormViewEngine,MvcContrib View Engines等)的优缺点进行实际比较.我认为这对确定从默认引擎切换是否对给定项目或开发组有利有用.
有没有人遇到这样的比较?
我在本节中定义了此部分 _Layout.cshtml
@RenderSection("Scripts", false)
Run Code Online (Sandbox Code Playgroud)
我可以从视图中轻松使用它:
@section Scripts {
@*Stuff comes here*@
}
Run Code Online (Sandbox Code Playgroud)
我正在努力的是如何从局部视图中获取本节内注入的一些内容.
我们假设这是我的视图页面:
@section Scripts {
<script>
//code comes here
</script>
}
<div>
poo bar poo
</div>
<div>
@Html.Partial("_myPartial")
</div>
Run Code Online (Sandbox Code Playgroud)
我需要Scripts
从_myPartial
局部视图中注入部分内容.
我怎样才能做到这一点?