Questions tagged «razor»

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

3
使用Razor MVC3的条件HTML属性
变量strCSSClass通常具有一个值,但有时为空。 我不想在此输入元素的HTML中包含一个空的class =“”,这意味着如果strCSSClass为空,我根本就不需要class =属性。 以下是执行条件HTML属性的一种方法: <input type="text" id="@strElementID" @(CSSClass.IsEmpty() ? "" : "class=" + strCSSClass) /> 有没有更优雅的方式做到这一点?具体来说,我可以遵循与元素其他部分中使用的相同的语法:class =“ @ strCSSClass”?

7
Razor MVC使用模型数组填充Javascript数组
我正在尝试使用模型中的数组加载JavaScript数组。在我看来,这应该是可能的。 以下两种方法均无效。 无法创建JavaScript循环并使用JavaScript变量通过模型数组进行增量 for(var j=0; j<255; j++) { jsArray = (@(Model.data[j]))); } 无法创建Razor循环,JavaScript超出范围 @foreach(var d in Model.data) { jsArray = d; } 我可以使用它 var jsdata = @Html.Raw(Json.Encode(Model.data)); 但是我不知道为什么我必须使用JSON。 另外,此刻我将其限制为255个字节。将来可能会达到许多MB。

4
剃刀不理解未封闭的html标签
使用RazorViewEngine,我可以做到这一点: if (somecondition) { <div> some stuff </div> } 但我似乎无法做到这一点(Razor感到困惑): if (somecondition) { <div> } if (someothercondition) { </div> } 我遇到需要将打开和关闭html标签放在不同代码块中的情况-如何在Razor中做到这一点?

11
ASP.NET MVC 3:使用TextBoxFor覆盖“名称”属性
使用Html.TextBoxFor覆盖名称属性时可能吗? 我尝试没有成功。我需要使用TextBoxFor来使客户端验证正常工作,但是出于我不愿讨论的原因,我需要文本框的名称与生成的名称不同。 我尝试了以下方法: @Html.TextBoxFor(x => x.Data, new { name = Model.Key + "_Data", id = Model.Key + "_Data" }) 这适用于ID,但不适用于名称。这可能吗? 更新:查看TextBoxFor的代码。看起来没有简单的方法。希望有人能证明我错了。

3
使用布局时如何在视图内添加脚本src
我想包含一个JavaScript参考,例如: <script src="@Url.Content("~/Scripts/jqueryFoo.js")" type="text/javascript"></script> 如果我有一个Razor视图,什么是包括它而不必将其添加到布局中的正确方法(我只需要在一个特定的视图中,而不是所有视图中都需要) 在aspx中,我们可以使用内容占位符。我在mvc中找到了使用aspx的旧示例,但在Razor视图中却没有。

3
MVC4样式束给403
启用捆绑/最小化后,我的某些捆绑在浏览器中似乎具有无效的URL(以/结束),并且IIS给出了403禁止的错误,就像试图列出文件夹的内容一样。 我的捆绑软件设置方式没有区别-它们不是.min.css,访问权限正确,等等。

20
当前上下文中不存在名称“ ViewBag”-Visual Studio 2015
我再次开始在ASP.NET中进行开发,但在Visual Studio中遇到了一个小错误。使用一些剃刀功能时,我的.cshtml文件显示错误。例如“名称'ViewBag'在当前上下文中不存在”。这是一张图片: 我正在使用一个演示项目。您可以在这里找到该项目:https : //github.com/Wintellect/Angular-MVC-Cookbook/tree/master/BasicProject 我浏览了其他几个线程,大多数都建议更新web.config文件。这两个配置文件已经存在,并且因为它是一个非常流行的演示,所以我认为它具有所有必需的配置。我当然浏览了这些配置文件,它们确实包含建议的解决方案。 其他详情: 我已经在解决方案上使用了clean&rebuild,但是并没有改变。 当我创建一个全新的MVC项目时,它可以工作 我的朋友有相同的问题,我们都使用VS 2015和Windows 10 我仍然可以运行该应用程序,并且可以正常工作。 提前致谢。


3
@ Html.BeginForm在页面上显示“ System.Web.Mvc.Html.MvcForm”
我有一个剃刀视图,我在'if'语句的内部添加了删除按钮,并且在浏览器中呈现视图时,在删除按钮旁边显示“ System.Web.Mvc.Html.MvcForm”。 我如何摆脱它? 这是代码: <div id="deletestatusupdate"> @if (update.User.UserName.Equals(User.Identity.Name, StringComparison.OrdinalIgnoreCase)) { @Html.BeginForm("deleteupdate", "home") @Html.Hidden("returnUrl", Request.Url.ToString()) <button name="id" value="@update.StatusUpdateId">Delete</button> } </div> 这是它在渲染的Razor视图中的显示方式: System.Web.Mvc.Html.MvcForm [删除按钮] 假装[delete button]是一个实际的按钮,感觉不像是截屏。 谢谢您的帮助。

6
ASP.NET MVC Razor:如何在控制器动作中呈现Razor局部视图的HTML
如何在ASP.NET视图引擎上生成给定局部视图的HTML 是已知的。 但是,如果在剃刀局部视图上使用此功能,则该功能将不起作用,因为例外情况表明局部视图不是从“ UserControl”派生的。 如何修复渲染以支持剃刀局部视图? 我需要这个,因为我是通过部分视图生成电子邮件的... 更新: 失败的代码(@mcl): public string RenderPartialToString(string controlName, object viewData) { ViewPage viewPage = new ViewPage() { ViewContext = new ViewContext() }; viewPage.Url = this.GetUrlHelper(); string fullControlName = "~/Views/Email/" + controlName + ".ascx"; viewPage.ViewData = new ViewDataDictionary(viewData); viewPage.Controls.Add(viewPage.LoadControl(fullControlName)); StringBuilder sb = new StringBuilder(); using (StringWriter sw …
97 c#  asp.net-mvc  razor 

19
可空布尔值的复选框
我的模型有一个布尔值,必须为空 public bool? Foo { get; set; } 所以在我的剃刀cshtml中 @Html.CheckBoxFor(m => m.Foo) 除了那行不通。也不会使用(bool)对其进行强制转换。如果我做 @Html.CheckBoxFor(m => m.Foo.Value) 不会产生错误,但是在发布且foo设置为null时不会绑定到我的模型。在页面上显示Foo并将其绑定到帖子上的模型的最佳方法是什么?

13
Html.DropdownList对于未设置所选值
如何设置Html.DropDownListFor的选定值?我一直在网上看,已经看到可以通过使用第四个参数来实现它,如下所示: @Html.DropDownListFor(m => m, new SelectList(Model, "Code", "Name", 0), "Please select a country") 然后,我的选择列表显示如下: <select id="ShipFromCountries" name="ShipFromCountries"> <option value="">Please select a country</option> <option value="GB">United Kingdom</option> <option value="US">United States</option> ... </select> 但是由于某些原因,英国仍然被选中,但我希望选择“请选择一个国家”。 有人知道我能做到这一点吗? 编辑 我已经更新了代码,因为功能略有变化,但是似乎仍然遇到此问题。我认为这是什么: @Html.DropDownListFor(n => n.OrderTemplates, new SelectList(Model.OrderTemplates, "OrderTemplateId", "OrderTemplateName", 1), "Please select an order template") 1是option我要选择的ID ,我也尝试过使用的文本,option但这也不起作用。 有任何想法吗?

4
带有Razor的Html.RenderPartial()语法
之所以有效,是因为它以字符串形式返回部分视图渲染的结果: @Html.Partial("Path/to/my/partial/view") 但是我更喜欢使用RenderPartial,似乎我需要写: @{Html.RenderPartial("Path/to/my/partial/view");} 代替: @Html.RenderPartial("Path/to/my/partial/view"); 要使其正常工作。错误信息: Compiler Error Message: CS1502: The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments 如果有更好的方法代替@{...}只为一个方法调用打开代码块?

6
ASP.NET MVC剃刀串联
我正在尝试使用Razor视图引擎呈现如下所示的HTML列表: <ul> <li id="item_1">Item 1</li> <li id="item_2">Item 2</li> </ul> 我试图用来呈现此列表的代码是: <ul> @foreach (var item in Model.TheItems) { <li id="item_@item.TheItemId">Item @item.TheItemId</li> } </ul> 解析器令人窒息,因为它认为id属性中下划线右侧的所有内容均为纯文本,因此不应进行解析。我不确定如何指示解析器呈现TheItemId。 我只想在模型对象上添加一个包含item_前缀的属性。 我还必须保留这种语法,因为我将列表与JQuery Sortable配合使用,并且将序列化功能与要求id属性以这种语法格式设置的序列化功能一起使用。


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.