Tag: razor

Razor:声明式HTML帮助程序

我试图写一个简单的声明性的HTML帮手: @helper Echo(string input) { @input } 如果我将它embedded到我想要使用的页面中,该帮助程序工作正常。 但是,如果我将它移动到一个单独的.cshtml文件并将该文件放在~/Views/Helpers目录中,我的视图就不~/Views/Helpers被编译,因为找不到帮助器。 根据Scott Gu的博客文章Razor,它应该工作。 我究竟做错了什么?

剃刀视图作为电子邮件模板

我正在mvc3中创build一个电子邮件引擎,我正在尝试使用razor视图作为电子邮件模板。 我听说这是可能的,但我还没有find任何有关它的信息。

如何将额外的命名空间添加到Razor页面而不是@using声明?

我需要使用一些神奇的方法来获取webconfig中pages/namespaces元素的pages/namespaces吗? <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放在我所有页面的顶部

保存MVC上的多对多关系数据创build视图

我在保存创build视图结果的多对多关系中遇到了一些问题。 我想为新的用户configuration文件创build一个新的页面,该页面有一个允许他们select课程(多对多关系)的清单。 我的视图从Courses数据库中获取logging,并用checkbox显示它们。 一旦用户发布数据,我想更新我的用户configuration文件模型,以及courses之间的多对多关系。 这是我错过的代码! 我在MVC是新手,我一直在研究,但我还没有做到这一点。 我正在以下示例: http : //www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/updating-related-data-with-the-entity-framework-in-an- ASP净MVC应用程序 这是模型: public class UserProfile { public int Id { get; set; } public string Name { get; set; } public virtual ICollection<Courses> usercourses { get; set; } } public class Courses { public int CourseID { get; set; } public string CourseDescripcion { get; […]

Visual Studio 2015不语法高亮剃刀或智能感知

我在VS2015 RC的Razor视图没有显示C#代码的正确颜色。 我的项目在VS2013中工作得很好,但不是在2015年,也没有给我任何关于C#代码的Intellisense。 该解决scheme构build和网站运行良好。 我尝试了以下无济于事 禁用所有的Visual Studio扩展 删除我的.suo文件 删除项目并重新添加到解决scheme 我该如何解决这个问题? 例:

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

使用WebForms视图引擎,我将通常使用三元运算符来创build非常简单的条件,特别是在HTML属性中。 例如: <a class="<%=User.Identity.IsAuthenticated ? "auth" : "anon" %>">My link here</a> 上面的代码将给<a>标签一个auth或anon的类,这取决于用户是否被authentication。 Razor视图引擎的等效语法是什么? 由于Razor需要HTML标签来“知道”什么时候跳入代码和标记,我目前坚持以下几点: @if(User.Identity.IsAuthenticated) { <a class="auth">My link here</a> } else { <a class="anon">My link here</a> } 这是说,温和地, 可怕的 。 我会喜欢做这样的事情,但我正在努力去理解剃刀上的情况: <a class="@=User.Identity.IsAuthenticated ? "auth" : "anon";">My link here</a> – 更新: 与此同时,我创build了这个HtmlHelper: public static MvcHtmlString Conditional(this HtmlHelper html, Boolean condition, String ifTrue, String ifFalse) […]

在ASP.NET Core中将Razor View渲染为string

我使用RazorEngine在我的MVC 6项目中parsing模板,如下所示: Engine.Razor.RunCompile(File.ReadAllText(fullTemplateFilePath), templateName, null, model); 它工作正常的beta6。升级到beta7后,错误: MissingMethodException:Method not found:“Void Microsoft.AspNet.Razor.CodeGenerators.GeneratedClassContext.set_ResolveUrlMethodName(System.String)”。 在RazorEngine.Compilation.CompilerServiceBase.CreateHost(Type templateType,Type modelType,String className) 这是global.json: { "projects": [ "src", "test" ], "sdk": { "version": "1.0.0-beta7", "runtime": "clr", "architecture": "x64" } } 这是project.json: … "dependencies": { "EntityFramework.SqlServer": "7.0.0-beta7", "EntityFramework.Commands": "7.0.0-beta7", "Microsoft.AspNet.Mvc": "6.0.0-beta7", "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-beta7", "Microsoft.AspNet.Authentication.Cookies": "1.0.0-beta7", "Microsoft.AspNet.Authentication.Facebook": "1.0.0-beta7", "Microsoft.AspNet.Authentication.Google": "1.0.0-beta7", "Microsoft.AspNet.Authentication.MicrosoftAccount": "1.0.0-beta7", "Microsoft.AspNet.Authentication.Twitter": "1.0.0-beta7", "Microsoft.AspNet.Diagnostics": […]

将参数从@ Html.ActionLink MVC 4传递给控制器

在这一行中: @Html.ActionLink("Reply", "BlogReplyCommentAdd", "Blog", new { blogPostId = blogPostId, replyblogPostmodel = Model, captchaValid = Model.AddNewComment.DisplayCaptcha }) 我在blogPostId上得到以下运行时错误: 参数字典包含用于方法'System.Web.Mvc.ActionResult BlogReplyCommentAdd(Int32,Nop.Web.Models.Blogs.BlogPostModel,Boolean)'的非空types'System.Int32'的参数'blogPostId' 'Nop.Web.Controllers.BlogController'。 可选参数必须是引用types,可为空types,或者声明为可选参数。 参数名称:参数 我已经为此分配了一个值,比如 @{ var blogPostId = Model.Id; } 我的控制器: public ActionResult BlogReplyCommentAdd(int blogPostId, BlogPostModel model, bool captchaValid) {} 我做错了什么? 请给我一个例子。

如何在MVC3的部分视图中呈现一个部分?

在MVC3项目中,我有一个“_Layout.vbhtml”文件与此代码 <!DOCTYPE html> <html> <head> </head> <body> … <script src="@Url.Content("~/Scripts/jquery-1.8.2.min.js")"></script> @RenderSection("Scripts", false) </body> </html> 然后,我在Shared文件夹中使用了部分视图“ValidationScripts.vbhtml” @Section Scripts <script src="@Url.Content("~/Scripts/jquery.validate.min.js")"></script> <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"></script> <script src="@Url.Content("~/Scripts/jquery.validate.fix.js")"></script> <script src="@Url.Content("~/Scripts/localization/messages_de.js")"></script> End Section 如果我从这样的视图调用部分视图… @ModelType MvcExample.MyModel @Code ViewData("Title") = "Test" End Code @Html.Partial("ValidationScripts") <h2>Just a Test</h2> … “脚本”部分不在页面上呈现,并且输出的HTML是 <!DOCTYPE html> <html> <head> </head> <body> … <script src="@Url.Content("~/Scripts/jquery-1.8.2.min.js")"></script> </body> </html> 我如何渲染部分视图中的部分?

在js文件中,asp.net-mvc:razor'@'符号

我有一个JavaScript函数的.csHtml -razor文件,它使用@Url.Content C#函数里面的ajax URL。 我想将该函数移动到从我的视图引用的.js文件。 问题是,JavaScript不“知道” @符号,并不parsingC#代码。 有没有办法引用.js文件从视图与“@”符号?