标签: razor

722
推荐指数
8
解决办法
28万
查看次数

在剃刀视图引擎中转义@字符

我正在使用Razor作为视图引擎创建一个示例ASP.NET MVC 3站点.剃刀语法以@字符开头,例如@RenderBody().如果我在我的cshtml页面上写@test,它会给我解析错误

CS0103:当前上下文中不存在名称"test"

如何逃脱'@'角色?

razor asp.net-mvc-3

535
推荐指数
10
解决办法
22万
查看次数

编写/输出未转义的HTML字符串

我已经在数据库表中保存了安全/清理的HTML.

如何在Razor视图中写出此HTML内容?

它总是逃避字符<和&符号&amp;.

asp.net-mvc razor asp.net-mvc-3

425
推荐指数
5
解决办法
27万
查看次数

在JavaScript中使用Razor

在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)

javascript asp.net-mvc razor

419
推荐指数
10
解决办法
35万
查看次数

如何在剃刀中使用三元运算符(特别是在HTML属性上)?

使用WebForms视图引擎,我通常会使用三元运算符来处理非常简单的条件,特别是在HTML属性中.例如:

<a class="<%=User.Identity.IsAuthenticated ? "auth" : "anon" %>">My link here</a>
Run Code Online (Sandbox Code Playgroud)

上面的代码将为<a>标记提供一个类authanon取决于用户是否经过身份验证.

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)

尽管如此,我希望有一种方法可以使用三元运算符而不会退回到扩展方法中.

razor asp.net-mvc-3

387
推荐指数
5
解决办法
16万
查看次数

MVC4中的Styles.Render

在一个.NET MVC4项目中如何@Styles.Render运作?

我的意思是,它在@Styles.Render("~/Content/css")哪个文件中调用?

我的文件夹中没有文件或名为"css"的Content文件夹.

c# asp.net-mvc razor asp.net-mvc-4

377
推荐指数
3
解决办法
17万
查看次数

如何在MVC 3中获取当前页面URL

我在我正在建立的博客上使用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)

c# asp.net asp.net-mvc razor

354
推荐指数
6
解决办法
39万
查看次数

如何在Razor中声明局部变量?

我正在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)

但这不起作用.这可能吗?

.net c# asp.net-mvc razor asp.net-mvc-3

339
推荐指数
5
解决办法
32万
查看次数

ASP.NET MVC视图引擎比较

我一直在搜索SO和Google,了解可用于ASP.NET MVC的各种视图引擎,但是没有找到比视图引擎的简单高级描述更多的内容.

我不一定在寻找"最佳"或"最快",而是在各种情况下对主要参与者(例如默认的WebFormViewEngine,MvcContrib View Engines等)的优缺点进行实际比较.我认为这对确定从默认引擎切换是否对给定项目或开发组有利有用.

有没有人遇到这样的比较?

asp.net-mvc viewengine spark-view-engine razor

338
推荐指数
5
解决办法
10万
查看次数

使用Razor View Engine从部分视图ASP.NET MVC 3中将内容注入特定部分

我在本节中定义了此部分 _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局部视图中注入部分内容.

我怎样才能做到这一点?

asp.net asp.net-mvc partial-views razor asp.net-mvc-3

316
推荐指数
8
解决办法
19万
查看次数