Tag: mvc editor templates

在ASP.NET MVC中扩展HiddenFor模板

我认为Html.HiddenFor可以使用Html.DisplayFor或Html.EditorFor等模板。 不幸的是,该方法不像其他方法那样接受TemplateName 。 我知道,解决方法是使用具有HiddenFors的DisplayFor / EditorFor模板。 但我想了解如何扩展Html.HiddenFor方法。 任何人? 问候

ASP.NET MVC 2 – Html.Editor对于可以为空的类型?

我有两个编辑器模板:一个用于十进制,一个用于十进制? (可为空的) 但是当我的模型中有一个可以为空的小数时,它会尝试加载普通的十进制编辑器: model.SomeDecimal )%> model.SomeNullableDecimal )%> 第一个工作正常,并加载十进制编辑器模板。 第二个也尝试加载十进制模板(并且因为它不是十进制字段而失败)。 错误消息是: The model item passed into the dictionary is null, but this dictionary requires a non-null model item of type ‘System.Decimal’. 我的模板声明如下: 十进制模板: <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl” %> 可空的十进制模板: <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl” %> 我知道我可以通过传递模板名称来使其工作,例如 但我真的更喜欢它只是像所有其他模板一样使用类型自动工作。 model.SomeNullableDecimal, “NullableDecimalTemplate” )%>

如何在mvc 4中自动将占位符属性添加到html输入类型编号?

这是一个非常具体的问题。 我设法通过使用名为EmailAddress.cshtml的编辑器模板自动将占位符属性添加到html5电子邮件输入类型,保存在~/Views/Shared/EditorTemplates/文件夹中。 请参阅以下代码: @Html.TextBox(“”, ViewData.TemplateInfo.FormattedModelValue, new { @class = “text-box single-line”, placeholder = ViewData.ModelMetadata.Watermark }) 它的工作原理是因为我在视图模型中使用了[DataType(DataType.EmailAddress)] DataAnnotation。 什么不起作用是我使用int? 变量。 public class MiageQuotaRequestViewModel { [Required] [DataType(DataType.EmailAddress)] [Display(Name = “Nombre de place demandées”, Prompt = “Nombre de place”)] [Range(0, 50, ErrorMessage = “La demande doit être comprise entre 0 et 50 places”)] public int? RequestedQuota { get; […]

在MVC中使用SelectListItem创建一个通用存储库DropDown

几个月后我回到了这个问题,我已经在下面添加了我目前的最佳答案。 在最初的问题中,我仍然在寻找一种实现通用DropDown的简单方法,但标题与我当时遇到的具体错误更紧密相关。 我修改了标题以更密切地反映答案。 希望这可能对某人有所帮助。 原始问题: DropDownListFor throws的通用编辑器模板无法转换类型错误 我正在尝试使用从以下post中提取的想法为下拉列表创建通用模板: 将Html DropDownListFor移动到编辑器模板中 我创建了一个DropDownHelper类: public class DDLOptions { public T Value { get; set; } public IEnumerable Items { get; set; } } 我从这里修改了控制器: public ActionResult Create() { var model = new FilmEditViewModel(); FilmDropDownViewModel films = new FilmDropDownViewModel { Items = _repo.GetSelect(), }; model.filmName = films; return View(model); […]

使用EditorTemplate将字节显示为复选框?

我的模特课: public class StatusList { public int StatusID {get;set;} [UIHint(“ByteCheckbox”)] public byte Active {get;set;} } 在/ Views / Shared / EditorTemplates中,我创建了一个名为ByteCheckbox.cshtml的文件 editortemplate ByteCheckbox包含(我的第3次尝试): @model byte @if (Model == 1) { @Html.CheckBox(“”, true) } else { @Html.CheckBox(“”, false) } 这样做很好地呈现一个复选框。 当我更改复选框状态并尝试保存更改时,模型validation会抱怨值为“false”(或“true”)而不是预期的0或1。 如何修改editortemplate以允许转换值?

Enum RadioButtonFor Editor Template设置值

基于这个问题,我实现了一个RadioButtonFor编辑器模板。 我工作得很好,但目前你无法传递你想要的价值。 EnumRadioButtonList.cshtml (Editor Template): @model Enum @foreach (var value in Enum.GetValues(Model.GetType())) { if ((int)value > 0) { @Html.RadioButtonFor(m => m, (int)value) @Html.Label(value.ToString()) } } 我从View中调用它: @Html.EditorFor(m => m.QuestionResponse, “EnumRadioButtonList”) 如何传递值QuestionResponse(枚举)以便选择单选按钮?

如何让Html.CheckBoxFor()在字符串字段上工作?

我正在使用带有Razor和C#的ASP.NET MVC3。 我正在制作各种表单构建器,所以我有一个具有以下对象集合的模型: public class MyFormField { public string Name { get; set; } public string Value { get; set; } public MyFormType Type { get; set; } } MyFormType只是一个枚举,告诉我表单字段是复选框,文本框,文件上传,还是其他什么。 我的编辑器模板看起来像这样(请参阅注释): 〜/查看/ EditorTemplates / MyFormField.cshtml @model MyFormField @{ switch (Model.Type) { case MyFormType.Textbox: @Html.TextBoxFor(m => m.Value) case MyFormType.Checkbox: @Html.CheckBoxFor(m => m.Value) // This does not […]