Tag: html helper

C#html-helper扩展现有方法而不覆盖?

我已经搜索过这个问题并找到了可能的答案 ,但我还是需要一些帮助。 我正在尝试编写一个html-helper来扩展现有LabelFor方法的function public static MvcHtmlString LabelFor(this HtmlHelper html, Expression<Func> expression, IDictionary htmlAttributes) { ModelMetadata metadata = ModelMetadata.FromLambdaExpression(expression, html.ViewData); string htmlFieldName = ExpressionHelper.GetExpressionText(expression); //string labelText = metadata.DisplayName ?? metadata.PropertyName ?? htmlFieldName.Split(‘.’).Last(); var labelText = html.LabelFor(expression); if (String.IsNullOrEmpty(labelText.ToString())) { return MvcHtmlString.Empty; } if (metadata.IsRequired) { labelText = new MvcHtmlString(labelText.ToString().Substring(0, labelText.ToString().Length – 8).Trim() + “*”); } TagBuilder […]

Mvc UserControl使用HtmlHelper与HelperResult和MvcHtmlString

我正在使用asp mvc开发一个应用程序,我想为开发人员创建一些友好的控件,比如asp.net WebForms中的Server控件。 在这种情况下,我想创建一个引导面板,它具有一些固定的html并在项目模板中呈现。 我是这样做的: public static MvcHtmlString BootPanel(this IEnumerable items, Func template, string title = “”) { StringBuilder sb = new StringBuilder(); sb.Append(“”); sb.Append(“”); sb.Append(title); sb.Append(“”); sb.Append(“”); var hr = new HelperResult(writer => { foreach (var item in items) { template(item).WriteTo(writer); } }); sb.Append(hr.ToHtmlString()); sb.Append(“”); sb.Append(“”); return MvcHtmlString.Create(sb.ToString()); } 这是剃刀查看: @{ var videoGames = […]

如何确定PropertyType是否为外键

我有以下类’schakeling’,用EF生成,表示数据库表’schakeling’。 在数据库中,’id’是主键,’plc_id’是外键。 public partial class schakeling { public schakeling() { this.verbruik = new HashSet(); } public int id { get; set; } public int plc_id { get; set; } public string var_output { get; set; } public string omschrijving { get; set; } public int vermogen { get; set; } public Nullable status { get; […]

如何在处理List 时使用@ Html.CheckBoxFor()

这是我的观点。 如何使用CheckboxFor(): @using eMCViewModels; @model eMCViewModels.RolesViewModel @{ ViewBag.Title = “CreateNew”; } CreateNew @using (Html.BeginForm()) { @Html.ValidationSummary(true) RolesViewModel @Html.LabelFor(model => model.Name) @Html.EditorFor(model => model.Name) @Html.ValidationMessageFor(model => model.Name) @foreach (RoleAccessViewModel mnu in Model.RoleAccess) { // How to use checkboxfor here? } } @Html.ActionLink(“Back to List”, “Index”) @section Scripts { @Scripts.Render(“~/bundles/jqueryval”) } Model.RoleAccess是一个List ,我想使用@Html.CheckBoxFor()创建复选框。 这是我的RoleAccessViewModel public class RoleAccessViewModel […]

用reflection动态调用textboxfor

我想要做的最终结果是通过反映对象及其属性来动态构建表单。 我已经创建了调用TextBoxFor和CheckBoxFor等的HtmlHelper方法,但是现在我需要帮助找出在将它传递给Html.TextBoxFor时如何正确反映属性 这是辅助方法: public static MvcHtmlString FormTextBox(this HtmlHelper helper, String id, String property_name, object model, RouteValueDictionary attributes) { Type model_type = model.GetType(); return helper.TextBoxFor(model_object => model_type.InvokeMember(property_name, BindingFlags.ExactBinding | BindingFlags.GetProperty, null, model, null)); } 但它在返回时会出现此错误代码: 模板只能用于字段访问,属性访问,单维数组索引或单参数自定义索引器表达式。 基本上我想采取这样的方式: @Html.TextBoxFor(model => model.Name) 把它变成这个: @FormHelpers.FormTextBox(“Name”, model) 并让它输出相同的东西。 UPDATE 我将重申这一点,因为我在解决问题方面取得了一些进展。 我已经从Expression.PropertyOrField创建了一个Expression,它可以创建我正在寻找的东西。 但是我无法让TextBoxFor函数接受它。 Expression fieldExpr = Expression.PropertyOrField(Expression.Constant(model),property_name); return helper.TextBoxFor(Expression.Lambda<Func>(fieldExpr, null).Compile()()); 关于如何正确地将Expression传递给函数的任何想法?

如何创建Expression <Func >;

如果我有一个模型对象,是否可以创建Expression<Func>() ,它可以在不同的htmlHelpers中使用(例如在CheckBoxFor() ) this HtmlHelper htmlHelper 和财产的名称(通过反思)。

测试HtmlHelper时如何解决图像路径问题?

我在测试HTML帮助程序时遇到了一个问题。 基本上我正在创建一个包含大量行,列和不同类型数据的网格。 在标题中还有一个图像,用于通知用户数据按哪个列排序。 但是,当我现在正在编写我的测试时(太迟了,但迟到总比没有好?!),我得到了这个错误: “应用程序相对虚拟路径’〜/ Images / SortingArrowUp.png’不能成为绝对路径,因为应用程序的路径未知。” var imgPath = VirtualPathUtility.ToAbsolute(“~/Images/SortingArrowUp.png”); 我该怎么解决这个问题。 我可以理解在测试期间这可能是一个什么问题,并且图像可能不可用而且所有这些,但是这样做的正确方法是什么呢?

将自定义HTML Helper添加到MVC项目

我一直在浏览网页试图找到一个很好的示例/教程,详细说明如何为我的MVC 3 Razor应用程序创建和使用我自己的自定义HTML帮助程序我发现这个如下所示 在ASP.NET MVC 3中添加自己的HtmlHelper 我已经创建了一个类(稍微修剪了一下) using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Linq.Expressions; using System.Web; using System.Web.Mvc; using System.Web.Mvc.Html; namespace MyWebApp { public static class ExtensionMethods { public static MvcHtmlString StateDropDownListFor (this HtmlHelper html, Expression<Func> expression) { Dictionary stateList = new Dictionary() { {“AL”,” Alabama”}, {“AK”,” Alaska”}, {“AZ”,” Arizona”}, {“AR”,” Arkansas”} […]

从HTML帮助程序中提取显示名称和描述属性

我正在构建一个自定义HTML.LabelFor帮助器,如下所示: public static MvcHtmlString LabelFor(this HtmlHelper self, Expression<Func> expression, Boolean showToolTip) { var metadata = ModelMetadata.FromLambdaExpression(expression, self.ViewData); … } 为了能够获得属性的正确名称,我使用以下代码: metadata.DisplayName 在ModelView类的属性上,我得到了: [DisplayName(“Titel”)] 问题是我还需要一个描述。 有一个名为Display的属性,它有名称和描述,但我没有看到如何使用上面代码中的元数据变量提取它?

在asp.net mvc 4 razor中访问Custom Html Helpers中的属性

我在ASP.NET MVC 4 razor视图引擎C#中创建了HtmlHelper。 我可以将视图模型属性传递给我的帮助程序类吗? 例如,我有财产 [Required] [Display(Name = “Your Lastname”)] public string Lastname { get; set; } 我可以将此属性传递给我的帮助程序,如@Html.Example(model => model.Lastname) ,然后在帮助程序中获取数据注释(如果需要此字段,则显示名称等等)?