Questions tagged «razor»

Razor是ASP.NET网页和ASP.NET MVC(从版本3开始)使用的模板语言。它在HTML生成之上增加了一层抽象。它支持HTML标记与C#或VB代码之间的无缝过渡。标记和代码之间的转换由“ @”符号指示。

7
Razor View Engine:表达式树可能不包含动态操作
我有一个与此类似的模型: public class SampleModel { public Product Product { get; set; } } 在我的控制器中,我尝试打印出异常 @Html.TextBoxFor(p => p.Product.Name) 这是错误: Exception: An expression tree may not contain a dynamic operation 如果有人可以给我一些解决方法的线索,我将不胜感激!

7
混合Razor和Javascript代码
我对如何混合剃须刀和js感到很困惑。这是我坚持的当前功能: <script type="text/javascript"> var data = []; @foreach (var r in Model.rows) { data.push([ @r.UnixTime * 1000, @r.Value ]); } 如果我可以用声明c#代码,<c#></c#>而其他所有内容都是JS代码,这就是我所追求的: <script type="text/javascript"> var data = []; <c#>@foreach (var r in Model.rows) {</c#> data.push([ <c#>@r.UnixTime</c#> * 1000, <c#>@r.Value</c#> ]); <c#>}</c#> 实现此目的的最佳方法是什么?
171 c#  javascript  razor 

5
MVC和Razor中的Html.TextboxFor和Html.EditorFor之间的区别
为什么默认情况下在添加新的“编辑”视图时更改了这些设置?使用EditorFor()vs.有什么优势TextboxFor()? 我找到了这个 默认情况下,创建和编辑脚手架现在使用Html.EditorFor助手而不是Html.TextBoxFor助手。当“添加视图”对话框生成视图时,以数据注释属性的形式改善了对模型上元数据的支持。

8
找不到Razor HtmlHelper扩展(或其他视图名称空间)
Dunno,如果这是在PR或Beta中发生的,但是如果我在上创建了扩展方法HtmlHelper,则在Razor支持的页面中无法识别该方法: namespace SomeNamespace.Extensions { public static class HtmlExtensions { public static string Foo(this HtmlHelper html) { return "Foo"; } } } 我将其添加到的<Namespaces>部分中Web.config: <pages> <namespaces> <add namespace="System.Web.Mvc" /> <!-- snip --> <add namespace="SomeNamespace.Extensions"/> </namespaces> </pages> 但是在尝试查看页面时会引发编译错误: @Html.Foo() 如果我使用WebForms重新创建页面,则效果很好。这是怎么回事? 解决方法 如果我将其包含@using SomeNamespace.Extensions在Razor视图中,则可以使用,但我宁愿将其包含在其中Web.config


1
使用_viewstart.cshtml和部分Razor视图的正确方法?
我正在使用_viewstart.cshtml自动为我的视图分配相同的Razor布局。 这是我的Views文件夹根目录中的一个简单的死文件,如下所示: @{ Layout = "~/Views/Shared/_Layout.cshtml"; } 这比将@Layout指令添加到每个单个视图要干得多。 但是,这给Razor 局部视图带来了问题,因为它们运行_viewstart.cshtml的内容,因此错误地为自己分配了布局,这使它们不再是局部的。 这是一个假设的项目,显示_viewstart.cshtml文件,共享的_layout.shtml文件和局部视图(“ AnonBar.cshtml”)。 当前,我要解决的方法是在每个局部视图中添加以下行: @{ Layout = ""; } 在Razor中将视图表示为局部视图似乎是错误的方法。(请注意,与Web窗体视图引擎不同,部分视图的文件扩展名相同。) 我考虑过的其他选择却更糟: 将所有部分视图放入一个公共文件夹,以便它们可以共享一个公共_viewstart.cshtml。这违反了视图与其控制器位于同一文件夹中的约定。 不使用局部视图。 Razor视图引擎团队是否还在充实这些东西,还是我缺少一个基本概念?

4
如何使用 ?:带有Razor和内联代码块的if语句
我正在使用新的Razore视图引擎更新旧的.aspx视图。我在很多地方都有这样的代码: <span class="vote-up<%= puzzle.UserVote == VoteType.Up ? "-selected" : "" %>">Vote Up</span> 理想情况下,我想这样做: <span class="vote-up@{puzzle.UserVote == VoteType.Up ? "-selected" : ""}">Vote Up</span> 但是,这里有两个问题: vote-up@{puzzle.UserVote ....不会将@符号视为代码块的开头 @puzzle.UserVote == VoteType.Up看起来@puzzle.UserVote就像应该渲染变量的值一样。 有人知道如何解决这些问题吗?

7
MVC 3:如何通过Ajax加载没有其布局页面的视图?
我正在学习渐进增强功能,并且对AJAXifying视图有疑问。在我的MVC 3项目中,我有一个布局页面,一个viewstart页面和两个纯视图。 viewstart页面位于Views文件夹的根目录中,因此适用于所有视图。它指定所有视图均_Layout.cshtml应用于其布局页面。布局页面包含两个导航链接,每个视图一个。链接用于@Html.ActionLink()将自身呈现到页面。 现在,我添加了jQuery,并希望劫持这些链接,并使用Ajax在页面上动态加载其内容。 <script type="text/javascript"> $(function () { $('#theLink').click(function () { $.ajax({ url: $(this).attr('href'), type: "GET", success: function (response) { $('#mainContent').html(response); } }); return false; }); }); </script> 我可以想到两种方法来执行此操作,但是我并不特别喜欢其中一种: 1)我可以获取整个View的内容并将它们放在局部视图中,然后在渲染时让主视图调用局部视图。这样Request.IsAjaxRequest(),我就可以在控制器中使用,根据请求是否为Ajax请求来返回View()或返回PartialView()。我无法将常规视图返回到Ajax请求,因为那样它将使用布局页面,并且我将获得注入的布局页面的第二个副本。但是,我不喜欢这样,因为它迫使我创建一个空视图,其中只包含一个@{Html.RenderPartial();}用于标准GET请求的视图。 public ActionResult Index() { if (Request.IsAjaxRequest()) return PartialView("partialView"); else return View(); } 然后在Index.cshtml中执行以下操作: @{Html.RenderPartial("partialView");} 2)我可以从_viewstart中删除布局名称,并在请求不是Ajax时手动指定它: public ActionResult Index() { …

3
如何使用Razor将未编码的Json写入视图?
我试图使用Razor将对象作为JSON写入我的Asp.Net MVC视图,如下所示: <script type="text/javascript"> var potentialAttendees = @Json.Encode(Model.PotentialAttendees); </script> 问题是在输出中对JSON进行了编码,而我的浏览器不喜欢它。例如: <script type="text/javascript"> var potentialAttendees = [{"Name":"Samuel Jack"},]; </script> 如何使Razor发出未编码的JSON?
153 asp.net-mvc  json  razor 

4
如何在MVC 4中将参数传递给局部视图
我有这样的链接: <a href='Member/MemberHome/Profile/Id'><span>Profile</span></a> 当我单击它时,它将称为此部分页面: @{ switch ((string)ViewBag.Details) { case "Profile": { @Html.Partial("_Profile"); break; } } } 部分页面_Profile包含: Html.Action("Action", "Controller", model.Paramter) 例: @Html.Action("MemberProfile", "Member", new { id=1 }) // id is always changing 我的疑问是如何将这个“ Id”传递给model.parameter部分? 我的控制器是: public ActionResult MemberHome(string id) { ViewBag.Details = id; return View(); } public ActionResult MemberProfile(int id …

4
如何在剃刀MVC 4中添加带有条件值的第二个CSS类
尽管微软已经在剃刀MVC4中创建了html属性的自动渲染,但是我花了很多时间才发现如何基于条件剃刀表达式在元素上渲染第二个CSS类。我想和你分享。 基于模型属性@ Model.Details,我想显示或隐藏列表项。如果有详细信息,则应显示div,否则应将其隐藏。使用jQuery,我要做的就是分别添加一个类show或hide。为了其他目的,我还想添加另一个类“ details”。因此,我的标记应该是: <div class="details show">[Details]</div> 要么 <div class="details hide">[Details]</div> 下面,我展示了一些失败的尝试(假设没有详细信息,将导致加价)。 这:<div @(@Model.Details.Count > 0 ? "class=details show" : "class=details hide")>, 将呈现此:<div class="details" hide="">。 这:<div @(@Model.Details.Count > 0 ? "class=\"details show\"" : "class=\"details hide\"")>。 将呈现此: <div class=""details" hide"="">。 这个: <div @(@Model.Details.Count > 0 ? "class='details show'" : "class='details hide'")> …

5
如何在Razor页面上添加额外的命名空间而不是@using声明?
我需要使用某种魔术来获取pages/namespaceswebconfig元素中的名称空间吗? <pages> <namespaces> <add namespace="System.Web.Mvc"/> <add namespace="System.Web.Mvc.Ajax"/> <add namespace="System.Web.Mvc.Html"/> <add namespace="System.Web.Routing"/> <add namespace="System.Web.WebPages"/> <add namespace="System.Web.Helpers"/> <add namespace="MyCustomHelpers"/> </namespaces> </pages> 以上只是不想要的工作。我知道名称空间很好,因为当我将放在@using MyCustomHelpers页面顶部时,它可以神奇地工作。 这样一来,我Html.SomeFunction()无需将@using所有页面放在顶部就可以开始工作



12
使用Razor的MVC 4中的DropDownList
我正在尝试DropDownList在剃刀视图上创建一个。 有人可以帮我吗? 普通的HTML5代码: <select id="dropdowntipo"> <option value="Exemplo1">Exemplo1</option> <option value="Exemplo2">Exemplo2</option> <option value="Exemplo3">Exemplo3</option> </select> 我尝试了这个: @{ var listItems = new List<ListItem> { new ListItem { Text = "Exemplo1", Value = "Exemplo1" }, new ListItem { Text = "Exemplo2", Value = "Exemplo2" }, new ListItem { Text = "Exemplo3", Value = "Exemplo3" } …
142 c#  asp.net-mvc  razor 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.