问题标签 [editortemplates]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1755 浏览

asp.net-mvc - asp.net mvc中编辑器模板中复杂类型的模型元数据

我有一个包含 TestThing 类型的复杂属性的视图模型,该属性声明为:

我有一个针对这种类型的 EditorTemplate,我希望能够在其中访问每个子属性的元数据。例如,如果模板是一个字符串,我可以使用 访问提示文本@ViewData.ModelMetadata.Watermark,但因为它是一个复杂类型,我不能使用这种方法。

有替代方案吗?

0 投票
2 回答
7491 浏览

asp.net-mvc-3 - ASP.Net MVC 3 - Client side unobtrusive validation for Editor Templates

I am new to ASP.Net MVC 3, facing some issues while trying to implementing client side unobtrusive validation for a editor template I have created for showing date in a custom way.

UI
I need to show date in a three texbox UI format as

enter image description here


I have put up a EditorTemplate for displaying the date in three parts as

Model
I have to bind a Date of Birth field which is a property in a subobject of my model to this property, in this structure

Clientside Validation

I have put up a custom validation attribute which implements IClientValidatable as

I am trying to emit the element names of Day, Month & Year textboxes here to client side validation elements, so that I will write a client side jquery validation method and adapter later which would consume those elements and do the validation at the client side.

View
Now, to use this editor template, I put in View the following lines

Added all relevant jquery validation files in the view as references

Questions

  1. This is not emitting out the unobtrusive javascript validation attributes in the html, though I have implemented IClientValidatable. For testing purpose when I put the same attribute (DateTimeClientValidation) on another property in the model which was not using this editor template, then it emitted out those validation attributes, it is not emitting it out only for this editor template. Where could have I gone wrong ?
  2. Regarding Validation Message span for the editor template, is it right that I put it in View only or should I put it directly in the editor template (@Html.ValidationMessageFor(m => m.MySubModel.DateofBirth))
  3. In this example, am I right in the design, I have put in DateTimeClientValidationAttribute, which actually is an attribute I put on model, but this component knows a bit about UI (since it is trying to emit out the Day, Month & Year elements name to the client), this makes Model know a bit about View, am I breaking any design principles here ?
  4. In DateTimeClientValidationAttribute, I am trying to emit out the day, month & year elements names to the client, so that the client script can do validations on it. But since the model property DateofBirth is in a subobject, the actual element name in the script is MySubObject.DateOfBirth, which makes the Day textbox name to be MySubObject.DateofBirth.Day, how can I find that fully qualified model name in the GetClientValidationRules method, so that I can emit out the name to the client ?

Thanks for being patient to read out all this, and for the answers

0 投票
1 回答
1303 浏览

c# - 从 EditorTemplates 中的 Html.TextBoxFor 检索 ClientId

我想用 JQuery 从 EditorTamplates 中制作一个日历。但我正在努力获取来自 Html.TextBoxFor 的输入文本的 id。由于我希望在一个视图上拥有多个日历,因此我无法直接分配该值,而必须遵循我的控件的上下文。

风景 :

和模型:

到目前为止,我已经尝试过使用 MvContrib,但是当我期望获得“Filter_StartDate_Date”时,我只收到“Date”。

你有什么好主意来解决这个问题吗?

提前致谢,

[编辑]

我在视图中添加了以下内容:

但我非常不喜欢它。对我来说,这看起来像是对视图的破解。你怎么看?

[/编辑]

0 投票
2 回答
782 浏览

asp.net-mvc-3 - 复杂对象的必需属性

我有这样的课

在我的模型中,我像这样使用它

如果我将所需的属性添加到 pagelink 属性中,它不会触发,如何解决?

0 投票
1 回答
72104 浏览

asp.net-mvc-3 - 如何在 ASP.NET MVC 3 中创建自定义编辑器/显示模板?

我想为 ASP.NET MVC 中的不同数据类型制作自定义编辑器模板(与 一起使用Html.EditorFor()),包括重写现有模板。最终目标是创建一个迷你框架,其中每个编辑器都支持有关更改的 javascript 通知,并且我可以向用户显示页面中有未保存的更改的消息。(也许已经存在一些东西?)

我可以找到许多与此类模板相关的问题,但我在任何地方都找不到有关创建它们的教程或手册。他们去哪里?有什么特殊的语法吗?如何选择模板?模板中提供了哪些信息以及如何访问它?等等。

那么 - 我在哪里可以找到所有关于这些模板的信息?

0 投票
1 回答
3898 浏览

asp.net-mvc-3 - ASP.NET MVC 3 数据属性 - 以编程方式从控制器设置 UIHint

如果我有这样的ViewModel

并使用EditorFor呈现表单字段:

它会渲染<input type="text">. 凉爽的。

但在这种特殊情况下,我已经从不同的来源检索了电子邮件,我希望用这些数据预先填写表格,并显示一个标签而不是文本框(因为我不希望他们更改他们的电子邮件 -不要担心为什么)。

我知道我可以使用[UIHint],但我可以从控制器以编程方式执行此操作吗?

例如:

解决这个问题的最佳方法是什么?我应该完全使用单独的 ViewModel,这可能意味着将我的视图从强类型更改为存在dynamic,或者我不应该使用EditorFor,还是应该使用自定义编辑器模板?

建议/建议将不胜感激。

0 投票
3 回答
3423 浏览

asp.net-mvc-3 - 我可以添加到 ASP.NET MVC 3 中的 Display/EditorTemplates 搜索路径吗?

我有一组标准模板用于我的 mvc 项目,我想将其作为外部文件夹保存在我的源代码管理 (SVN) 中

这意味着我不能将任何特定于项目的文件放在此文件夹中,因为它将被提交到错误的位置.. .. 我的标准模板需要覆盖 MVC 本身使用的那些,因此它们需要位于 MVC 位置期望覆盖模板(例如 ~/Views/Shared/EditorTemplates)

那么我可以把我的项目特定的放在哪里呢?

例如,我是否应该将它们放在 ~/Views/Shared/SiteEditorTemplates 中,然后将路径添加到搜索中?我该怎么做?还是其他建议?

谢谢你,蚂蚁

0 投票
1 回答
12336 浏览

asp.net-mvc-3 - ASP.NET MVC 3 编辑器模板中的 IEnumerable 模型属性

我有一个具有 IEnumerable 属性的模型(要遵循警告伪代码)

我想在同一个视图中显示地址子对象

个人.cshtml

编辑器模板/地址模型

太棒了,一切正常

但是,作为一个 git,我现在想开始使用模板布局以标准类型的方式和东西包装我的所有属性

因此,我创建了一个 string.cshtml 和一个 list.cshtml 来执行此操作,并使用 _Control.cshtml 进行布局

EditorTemplates/_Control.cshtml

EditorTemplates/string.cshtml

(到目前为止是的!但是等等..哦不..)

这就是麻烦

从主视图(见上文)变为

EditorTemplates/list.cshtml

这会错误地呈现 id 和名称,例如 Addresses_item_Name,其中不包含 Id,因此使用 for 循环添加 id

这会爆炸,因为 MVC 表达式助手除了数组之外不允许任何内容,但 Addresses 必须是 IEnumerable<> 因为 EF4.1 不支持子查询中的 .ToArray ,即。

有没有人反对这个?有标准的方法吗?

这行得通,但是对吗?

EditorTemplates/list.cshtml

所需的结构是

0 投票
3 回答
11560 浏览

asp.net-mvc-3 - MVC EditorFor 命名模板的问题

我有什么似乎(无论如何对我来说)是一个奇怪的问题......

我为 SelectListItem(~/Views/Shared/EditorTemplates 文件夹中的 SelectListItem.cshtml)创建了一个简单的编辑器模板,例如:

其中 c.Categories 是一个 IEnumerable

这工作得很好,但我想要另一个模板来呈现带有稍微不同标记的集合,所以我复制并重命名了编辑器模板,例如,“CategoryIcons.cshtm”并调用如下:

简而言之,唯一的区别是我指定了一个命名的编辑器模板。

当我打开页面时,我现在收到以下错误:

传入字典的模型项的类型为“System.Collections.Generic.List`1[System.Web.Mvc.SelectListItem]”,但此字典需要“System.Web.Mvc.SelectListItem”类型的模型项

模板的模型声明,在两个模板 id 中:

我不明白为什么默认模板有效而命名模板无效。任何帮助,将不胜感激。

谢谢。

0 投票
1 回答
431 浏览

asp.net-mvc-3 - @if + lambda 在编辑器模板中

我有一些我找不到正确语法的东西:

/Views/Shared/EditorTemplates/Component.cshtml

我希望意图很明确......我如何到达那里(这种事情很难用谷歌搜索)?