Tag: html helper

是否可以创建自定义ASP.NET MVC强类型HTML帮助程序?

我想知道是否可以在ASP.NET MVC 2中创建自定义强类型HTML Helper? 创建一个常规(读取非强类型)帮助器很简单,但我很难创建强类型版本。 例如,我想创建一个DatePickerFor html帮助器… 任何指导或片段将不胜感激,谢谢你提前! J.P

使用自己的助手创建? 喜欢Html.BeginForm

我想知道,是否有可能创建自己的帮助器定义,使用? 例如以下创建表单: using (Html.BeginForm(params)) { } 我想做那样的自己的帮手。 这是一个我想做的简单例子 using(Tablehelper.Begintable(id) { content etc } 这将在我的视图中输出 content etc 这可能吗? 如果是这样,怎么样? 谢谢

unit testingHtmlHelper扩展方法失败

我正在尝试测试我编写的一些HtmlHelper扩展方法。 我的第一个问题是如何创建一个HtmlHelper实例,但我使用此代码解决了这个问题: private static HtmlHelper CreateHtmlHelper(T model) { var viewDataDictionary = new ViewDataDictionary(model); var controllerContext = new ControllerContext(new Mock().Object, new RouteData(), new Mock().Object); var viewContext = new ViewContext(controllerContext, new Mock().Object, viewDataDictionary, new TempDataDictionary(), new Mock().Object); var mockViewDataContainer = new Mock(); mockViewDataContainer.Setup(v => v.ViewData).Returns(viewDataDictionary); return new HtmlHelper(viewContext, mockViewDataContainer.Object); } 我的几个测试现在工作正常,但有一个测试会引发exception。 测试定义如下: // Arrange var inputDictionary = […]

“this”关键字在方法参数中的含义是什么?

namespace System.Web.Mvc.Html { // Summary: // Represents support for HTML in an application. public static class FormExtensions { public static MvcForm BeginForm(this HtmlHelper htmlHelper, string actionName, string controllerName); … } } 我注意到在BeginForm方法的第一个参数前面的’this’对象似乎不被接受为参数。 看起来在真正的BeginForm方法中的function如下: BeginForm(string actionName, string controllerName); 省略第一个参数。 但它实际上以隐藏的方式以某种方式接收第一个参数。 能告诉我这个结构是如何工作的吗? 我实际上在探索MVC 4互联网示例。 谢谢。

从MVC 5.1 EnumDropDownListFor中排除/删除值

我有一个用于用户管理页面的枚举列表。 我正在使用MVC 5.1中的新HtmlHelper,它允许我为Enum值创建一个下拉列表。 我现在需要从列表中删除Pending值,此值只能以编程方式设置,并且永远不应由用户设置。 枚举: public enum UserStatus { Pending = 0, Limited = 1, Active = 2 } 视图: @Html.EnumDropDownListFor(model => model.Status) 无论如何,要么覆盖当前控件,要么编写一个允许我指定枚举的自定义HtmlHelper,或者从结果列表中排除枚举? 或者你会建议我用jQuery做客户端的东西,一旦生成后从下拉列表中删除值? 谢谢!

为什么不使用Html.EditorForModel()

好吧,我刚刚发现了MVC中的EditorForModel ,我想知道何时应该在每个属性上使用它而不是EditorFor ? 为什么当我添加强类型视图时它不使用它并在每个属性上构建一个EditorFor ? 我迟到了…但感谢您的信息!

如何在MVC Html.DropDownList()中添加静态项目列表

我想将一个静态的SelectList()项目列表分配给ASP.NET MVC中的Html.DropDownList() ,最佳做法是什么? 我正打算尝试找到一种方法来使用new SelectList(new {key = “value”}…但是一个,哪个不起作用,两个,如果我的静态列表是无论如何在ViewData声明并作为IList/IENumerable传递?

带有Html Helper的条件html属性

我正在使用Html助手创建一个复选框。 在某些情况下,我想将disabled属性添加到htmlAttribute对象。 我有以下代码: @if (Model.IsAuthorized) { @Html.CheckBoxFor(x => @Model.Property, new { @class = “input-class” }) } else { @Html.CheckBoxFor(x => @Model.Property, new { @class = “input-class”, @disabled = “disabled” }) } 我想让这段代码更简洁。 有没有办法在一行中有条件地添加某些html属性/没有块条件?

如何创建像Html.BeginForm这样的Html Helper

我有一个扩展方法,用于validation用户是否能够根据角色查看网页的一部分。 如果我简单地删除内容,这会带给我更多的工作,因为所有丢失的表单在保存时都无法正确注册,我必须通过修改所有代码来处理这种行为,所以我想为什么不只是使用display:none; 属性? 我希望有类似的东西: @using(Html.RoleAccess(currentUser, RoleAccessType.Content_General_Website)) { … } 并且这会写如下: … 或使用display:block; 如果用户有权访问… 我可以创建一个简单的HtmlHelper但是如何编写一个也输出结尾的 ? public static string RoleAccess( this HtmlHelper helper, UserInfo user, RoleAccessType role) { return String.Format( “”, role.ToString(), user.HasAccess(role)); }

MVC HTML助手和Lambda表达式

我在很大程度上理解Lambda查询,但是当我尝试学习MVC时,我看到了默认的Scaffolding模板,他们使用Lambda表达式来处理这么多组件。 例如, DisplayFor HTML Helper就是其中之一。 代码为@Html.DisplayFor(model => model.name) 我希望没有人认为这是一个愚蠢的问题,只是因为我(我认为)在大多数情况下理解Lambda表达式,它们并不像常规代码那样“流动”,我不得不考虑它很难理解实际发生了什么! 所以问题确实是, 1)使用Lambda查询为这些HTML帮助程序,我是否有任何好处? 2)据我所知,DisplayFor只会连接到一个项目 – 所以,为什么这不仅仅是@Html.DisplayFor(model.name)或类似的? 请提供任何其他可以使MVC新手更好的信息!