Tag: razor

使用Razor MVC3的条件HTML属性

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

将ASP.NET MVC Razor @helper函数转换为辅助类的方法

考虑下面的ASP.NET MVC剃刀视图片断,它定义了一个帮手 @helper FieldFor<TModel>(Expression<Func<TModel, string>> expression) { <div class="form-group"> @Html.LabelFor(expression, htmlAttributes: new {@class = "control-label col-md-2"}) <div class="col-md-10"> @Html.EditorFor(expression, new { htmlAttributes = new {@class = "form-control"} }) @Html.ValidationMessageFor(expression, "", new {@class = "text-danger"}) </div> </div> } 什么样的模式将其转换为类似于类的方法: public static MvcHtmlString FieldFor(this HtmlHelper helper, FieldFor<TModel>(Expression<Func<TModel, string>> expression)) { /* Method */ } 我发现所有的例子都集中在生成不依赖其他HTML帮助器的标记上。

用于DropDownList的EditorTemplate

我已经创build了一个EditorTemplate实现引导的string字段,如下所示: @using MyProject @model object <div class="form-group"> @Html.LabelFor(m => m, new { @class = "col-md-3 control-label" }) <div class="col-md-9"> @Html.TextBox( "", ViewData.TemplateInfo.FormattedModelValue, htmlAttributes) @Html.ValidationMessageFor(m => m, null, new { @class = "help-block" }) </div> </div> 我可以简单地这样调用它: @Html.EditorFor(model => model.FirstName,"BootstrapString") 我的问题:我将如何做一个DropDownList这样我可以只调用@ Html.EditorFor如下: @Html.EditorFor(model => model.CategoryId,new SelectList(ViewBag.Categories, "ID", "CategoryName")) 所以它基本上是一个具有Twitter Bootstrap样式的genericsDropDownList。

ASP.NET MVC实现自定义validation器使用IClientValidatable

我在这里问类似的问题,但在这个问题我使用另一种实现,正是这样下面的代码显示我的实现: 模型: public class Department { public long Id { get; set; } [IsDateAfter("Date2", true, ErrorMessage = "O My")] public DateTime Date1 { get; set; } public DateTime Date2 { get; set; } public string Name1 { get; set; } public string Name2 { get; set; } } 自定义validation器: public sealed class IsDateAfter : ValidationAttribute, […]

我在哪里可以findSystem.Web.Helpers,System.Web.WebPages和System.Web.Razor?

我正在关于RazorGenerator的这篇文章 ,它说,我必须添加引用: System.Web.Helpers.dll System.Web.WebPages.dll System.Web.Razor.dll 唯一一个我可以看到,当我做Add Reference是System.Web.Razor ,但我不知道其他人在哪里。

Razor Views没有看到System.Web.Mvc.HtmlHelper

我正在升级到MVC4的过程中。 我遵循在http://www.asp.net/whitepapers/mvc4-release-notes#_Toc303253806的指示,但在我的剃刀视图和布局,我有错误 'System.Web.WebPages.Html.HtmlHelper'没有包含“BeginRouteForm”的定义,也没有find接受'System.Web.WebPages.Html.HtmlHelper'types的第一个参数的扩展方法'BeginRouteForm'(你缺less使用指令或程序集引用?) 我也有像这样的错误: “当前上下文中不存在名称”Viewbag“ 当我hover在@Html上,我可以看到它是System.Web.WebPages.Html.HtmlHelper而不是System.Web.Mvc.HtmlHelper 不确定其他信息是相关的,但这是我的位置: 我还没有更新类图书馆等等。 该项目是在VS2010中创build的,但是我正在VS2012中进行迁移 该项目打开并运行正常与VS2012,。NET 4.0,MVC 3 任何指针赞赏。 编辑: web.config中的所有参考和文件已升级到: System.Web.Mvc,版本= 4.0.0.0 System.Web.WebPages,版本= 2.0.0.0 System.Web.Helpers,版本= 2.0.0.0 System.Web.WebPages.Razor,版本= 2.0.0.0 编辑(2):在我的/views/web.config(或/views/shared/web.config,如果我尝试下面的@Paul的解决scheme),我有我自己的基本types,从System.Webinheritance。 Mvc.WebViewPage,在包含库中的引用已经更新到MVC4,并进入定义带我到MVC4 DLL。 新版本在这方面有什么变化吗? 我在发行说明中看不到任何相关内容。

checkbox为可空布尔值

我的模型有一个必须为空的布尔值 public bool? Foo { get; set; } 所以在我的剃刀cshtml我有 @Html.CheckBoxFor(m => m.Foo) 除了不起作用。 (bool)也没有。 如果我做 @Html.CheckBoxFor(m => m.Foo.Value) 这并不会产生错误,但是在发布和foo被设置为null时,它不会绑定到我的模型。 什么是在页面上显示Foo的最佳方式,并使其绑定到我的模型在一个职位?

MVC和Razor中的Html.TextboxFor和Html.EditorFor之间的区别

为什么在添加一个新的“编辑”视图时默认情况下会改变? 使用EditorFor()和TextboxFor()时有什么优势? 我find了这个 默认情况下,创build和编辑脚手架现在使用Html.EditorFor帮手,而不是Html.TextBoxFor帮手。 当“添加视图”对话框生成视图时,这会以数据注记属性的forms改进对模型上元数据的支持。

Visual Studio 2015破碎的剃刀智能感知

安装后,然后修复我的VS2015实例,我仍然无法让我的MVC视图中工作的intellisense(服务器端)。 当我第一次在会话中打开一个.cshtml文件并发送到Activitylog文件时,我会收到提示信息。 在ActivityLog.xml中检索到错误消息(简短版本): System.ArgumentException:Item已被添加。 键入字典:“RazorSupportedRuntimeVersion” 这是完整版本: System.Reflection.TargetInvocationException:exception已被调用的目标引发。 —> System.ArgumentException:Item已被添加。 键入字典:在System.Collections.Hashtable.Add(Object key,Object value)System.Collections.Hashtable.Insert(Object key,Object nvalue,Boolean add)处添加'RazorSupportedRuntimeVersion'键:'RazorSupportedRuntimeVersion'。在Microsoft.VisualStudio.Utilities.PropertyCollection.AddProperty(Object key,Object属性)上Microsoft.VisualStudio.Html.Package.Razor.RazorVersionDetector.Microsoft.Html.Editor的Collections.Specialized.HybridDictionary.Add(Object key,Object value)。 ContainedLanguage.Razor.Def.IRazorVersionDetector.GetVersion(ITextBuffer textBuffer)在Microsoft.Html.Editor.ContainedLanguage.Razor.RazorErrorTagger..ctor(Microsoft.Html.Editor.ContainedLanguage.Razor.RazorUtility.TryGetRazorVersion(ITextBuffer textBuffer,Version&razorVersion) ITextBuffer textBuffer)—内部exception堆栈跟踪—在System.RuntimeMethodHandle.InvokeMethod(对象目标,对象[]参数,签名sig,布尔构造函数)在System.Reflection.RuntimeCo System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr,Binder binder,Object [] args,CultureInfo culture,Object [] activationAttributes,StackCrawlMark&stackMark)上的nstructorInfo.Invoke(BindingFlags invokeAttr,Binder binder,Object []参数,CultureInfo culture)在Microsoft.Html.Editor.ContainedLanguage上的System.Activator.CreateInstance(Type type,Object [] args)上的Activator.CreateInstance(Type type,BindingFlags bindingAttr,Binder binder,Object [] args,CultureInfo culture,Object [] activationAttributes) Common.ContainedCodeErrorTaggerProvider1.1.CreateTagger [T](ITextBuffer textBuffer)在Microsoft.VisualStudio.Text.Tagging.Implementation.TagAggregator'1.GatherTaggers(ITextBuffer textBuffer) 如果有任何帮助,我有一些字体颜色自定义,并安装了Web Essentials,Bundler&Minifier和Web编译器扩展。 更新 :无论是当我打开一个现有的Web应用程序,或从头开始创build一个全新的。 还有一个VS2013的实例安装在同一台机器上运行。 […]

我如何实现自定义的RazorViewEngine在非标准位置查找视图?

我正在寻找实现一个自定义的RazorViewEngine 。 基本上我有两个有效的代码相同的网站。 不同的是,他们看起来不同。 我想重写标准的视图引擎,使MVC在两个不同的位置查看它的视图,布局等。对于公司A,对于公司B来说,公司A将包含主视图,公司B的视图将覆盖这些主视图。 所以我想让视图引擎在位置B查看视图,布局,主要或部分,如果它发现它,然后返回它,如果它找不到它我希望它默认为公司A的视图作为默认值。 公司A显然只会查看自己的文件夹。 好的问题症结所在:我find了这个网站: http : //www.aspnetwiki.com/mvc-3-razor :extending-the-view-engine 第一个问题,这是实现这个目标的最好方法吗? 其次,我是否需要重写CreatePartial , CreateView , FindPartial和FindView方法? 更新 好吧,我已经想出了第二个问题,我想要重写的方法是CreateView和CreatePartialView因为在这一点上它构build了视图string,我可以摆弄它。