问题标签 [editorfor]

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 回答
3076 浏览

asp.net-mvc-3 - 如何在 asp .net MVC3 中为 EditorFor() html 助手设置 ID

我用它来覆盖框架生成的 id
@Html.EditorFor(model => model.cost, new { id = "checkCost" })
但不幸的是 id 没有改变。即,
当我
string d = Request.Form["checkCost"];
在控制器操作中使用时,字符串填充为空值。
为什么??我也用 TextBoxFor 替换了 EditorFor 但没有任何改变然后控制器也将成本作为 ID



更新:

  • 这是我的部分视图,我的主视图(从 ajax.actionLink 渲染部分)也持有 EditorFor(model=>mode.cost)
  • 部分视图强类型为 Check_master 表,主视图强类型为 package_master,其中两个 entitySet 都持有相同的名称属性,即“COST”其次,部分视图和主视图都持有 EditorFor“成本”

    我试图更改 check_master 属性的名称,如
  • [列(“check_cost”)]

公共可空成本{得到; 放;
但不知道为什么这不起作用,即属性 naem 在引用它时没有改变

0 投票
1 回答
1619 浏览

asp.net-mvc-3 - 使用 MVC3 EditorFor 模板交替 HTML 表格行类

我已经尽我所能搜索了,但无济于事,希望这是一个简单的问题!

我将 Html.EditorFor 用于 ViewModel 对象中的集合。

但我希望表格的交替行具有交替类(“奇数”、“偶数”)。我尝试使用我在 SO 上采用的以下方法,但在编辑器模板中使用它会重置“计数”值,并且它使一切都相同。

如:

这可以通过代码实现吗?

我想要达到的目标:

编辑器模板

谢谢大家。

0 投票
0 回答
232 浏览

c# - 你如何嵌入剃须刀 EditorFor View

我有一个可组合的 Web 应用程序,用户在其中输入一个项目编号,然后调用多个处理器中的一个来处理基于项目类型的操作。每个“处理器”都在一个单独的 .dll 中,可以放入应用程序并由 IOC 容器拾取以允许扩展站点。

处理器有时需要请求反馈,因此传递一个与 Html.EditorFor 一起使用的对象,以从用户那里收集额外的信息。

我的问题是是否有办法将 EditorFor 模板嵌入到单独的 .dll 中并让它在 Web 应用程序中获取?理想情况下,处理器将能够指定自己的 EditorFor 模板,这样他们就不会只使用基本的 EditorFor 模板,因为它相当缺乏。

0 投票
1 回答
3531 浏览

asp.net-mvc-3 - MVC3 集合模型与 EditorFor 的绑定

关于这个帖子另一个

假设我有以下内容:

我的观点是BarViewModel

在我的控制器中,我有一个接收BarViewModel.

给定为 Value1 和 Value2 生成的输入名称是"Foos[0].Value1"等等"Foos[1].Value1",在 POST 方法中,BarViewModel 上的集合由 ModelBinder 自动填充。惊人的。

问题是,如果我在我看来这样做的话:

然后为输入生成的名称就像这样"Foos__0__Value1"并且打破了模型绑定。我的 BarViewModel的Foos属性,在我的 POST 方法中,现在是null

我错过了什么?

编辑


如果我EditorFor在集合本身上使用:

名称生成正确。但这迫使我在 /Views/Share 中构建一个 ViewModel 来处理类型Foos,这将生成行,我真的不想这样做......

编辑 2


我将在这里澄清我的问题,我知道这有点模糊。

如果我做 :

输入的名称将具有表单"Foos[0].Value1",并且模型绑定在帖子上工作得很好。

但如果我这样做:

名称采用形式"Foos__0__Value1",模型绑定不起作用。在我的 post 方法中,model.Foos 将为空。

第二种语法破坏模型绑定是否有原因?

0 投票
1 回答
1281 浏览

asp.net-mvc-3 - 使用枚举创建下拉列表

可能重复:
MVC3 Razor DropDownListFor Enums

我是 ASP.NET MVC3 的新手(非常新)。我想为四年级的学生创建一个下拉列表框。我有:“第一”、“第二”、“第三”和“第四”。现在,在模型中,我创建了一个名为 YLevels 的枚举,如下所示:

作为一个整体,我的模型类 StudentMT 包含:

然后在我看来,我想使用 EditorFor():

如何定义将使用此枚举的属性?如何使用 EditorFor() 显示下拉列表?请建议我能做什么。

先感谢您!

0 投票
0 回答
1634 浏览

asp.net-mvc-3 - Html.EditorFor 可为空的 DateTime 从视图中返回为空

让我们做出以下假设;ASP.NET MVC 3 Razor C#,一个绑定到视图模型(不是实体等)的强类型视图,使用 Html.EditorFor 方法在视图模型中编辑可为空的 DateTime 属性。我添加的两个数据注释属性似乎导致模型绑定失败。

示例视图代码

示例 ViewModel 代码

示例控制器代码

添加数据注释属性时,提交视图中的表单时,视图中输入的数据不会回传到控制器。这意味着将 EditorFor 与这些属性一起使用时模型绑定失败。模型绑定适用于 TextBoxFor,在 TextBoxFor 输入框中输入的值将通过视图模型传递回视图。EditorFor 和数据注释验证属性有什么问题?

我们能否找到一个不涉及通过创建多个额外的类、助手、模板和编写大量额外代码来重新发明轮子的解决方案?我正在寻找一两条线解决方案。

0 投票
0 回答
1138 浏览

asp.net-mvc-3 - 带有复选框和单选按钮的 MVC3 分层视图模型

我正在拔掉我遗漏的一点头发——在过去的几个月里一直在学习 MVC,所以我对它相对较新,尽管我已经涵盖了很多领域......

我在尝试使用相对复杂的视图模型输出复选框和单选按钮时遇到问题。

我有以下视图(删除了不相关的字段):

分层视图模型如下所示:

每条元数据都有一个类型;类型定义了元数据的编辑方式和显示方式(以及数据在数据层中的存储位置)。事物的显示方面工作得非常好。

当类型为“SELECTION”时,我想显示一组单选按钮,其中只能选择一个。当类型为“MULTISELECTION”时,我想显示一组复选框,其中可以选择多个。我可以这样做,但我已经能够成功地将选定的值绑定到模型。

目前,我正在使用编辑器模板来显示列表,如下所示:

当我解决这个问题时,这将被扩展,但现在,它会按预期输出所有内容 - 我看到 SELECTION 类型的单选按钮列表和 MULTISELECTION 类型的复选框列表,但是当我调用时它没有正确绑定到模型提交动作。

我有点疯了。谁能看到我做错了什么明显的事情?

作为旁白:

我也尝试为 MetaDataOption 类创建一个编辑器模板,但是当指定模板名称(Html.EditorFor(m => m.Options , "MetaDataOptionsSingle") 和 Html.EditorFor(m => m.Options, "MetaDataOptionsMulti")) - 如果我没有为编辑器模板指定名称,则模板可以具有 MetaDataOption 模型,但如果指定名称,它需要一个列表。


更新

好的,我已经设法让它工作了,但是我现在遇到了不显眼的复选框验证问题。修复如下:

MetaData 编辑器模板现在看起来像这样:

我为 MULTISELECTION EditorFor 添加了另一个 EditorTemplate:

而MetaDataOption类如下:

现在,模型在提交时可以正确填充。但是,验证发生在编辑器模板呈现的所有复选框上(在 post 操作方法中,因为我还没有实现客户端验证),但 MetaDataOption 类的“Selected”成员上没有数据注释。

需要注意的是 - 如果未选中任何复选框,则 MetaData 类的“选项”成员为空。

我尝试将 Selected 属性设置为可为空的布尔值(布尔值?),但遇到了 MetaDataOption 编辑器模板中的 CheckBoxFor() 帮助器不接受可为空的布尔值的问题。

这让我发疯了......我花了两天时间试图让我用 ASP.Net 快速完成的工作!

0 投票
2 回答
2526 浏览

asp.net-mvc-3 - 编辑器模板(单选按钮列表)和传入字典的模型项是 [enum] 类型,但字典需要模型类型 X

环顾了类似的标题,但没有任何意义或没有任何效果。我明白为什么会出现错误,我只是想弄清楚如何修复它以使用我的EditorForModel. 我收到此错误:

传入字典的模型项的类型为“MyNameSpace.ViewModels.MyData+MyEnum”,但此字典需要“MyNameSpace.ViewModels.MyData”类型的模型项。

我的模型:

[UIHint]用来调用一个名为MyRadioButton.cshtml. 现在,我的视图也在调用 EditorTemplate 使用@Html.EditorForModel. 这是调用通用模板的视图页面的一部分:

两个模板都在“/Shared/EditorTemplates/”文件夹中。

这是MyRadioButton.cshtml模板:

这是BasicDetails.cshtml@Html.EditorForModel上面调用的):

我想避免在上面的单选按钮列表编辑器模板中出现任何复杂的东西,因为那里还有其他东西(我去掉了所有多余的东西,但仍然出现错误)。我在不同的视图中多次使用特定的单选按钮列表(这就是为什么我想对其进行模板化而不是复制/粘贴)。有什么建议吗?

0 投票
1 回答
29583 浏览

asp.net-mvc - 将 HTML.EditorFor 转换为下拉列表 (html.dropdownfor?)

目前我在这样的默认“创建”视图页面中使用 Html.EditorFor 控件。

我想将其转换为带有值的下拉列表,并且仍然绑定到视图中的模型。我的问题是两方面的。

  1. 如果下拉菜单中只需要 2/3 的值。有没有一种快速的方法来显式填充 2 或 3 个值?

  2. 如果列表很大并且需要来自 sql 查询,该怎么做?

在此先感谢您的帮助。

0 投票
1 回答
1697 浏览

asp.net-mvc-3 - MVC OrderBy EditorFor IEnumerable

我刚刚注册,这是我的第一篇文章,所以如果问题不是最好的,请多多包涵。我看了看,找不到适合我要求的答案;这可能是因为无法实现我想要的。

我有一个部分视图,它从视图模型中提取 EditorFor 字段的 IEnumerable 列表:

DocumentViewModelContainer 具有以下代码:

DocumentViewModel 具有以下代码:

在这两个视图模型中,我忽略了很多其他对象,因为它们与这个问题无关。DocumentMetadataFieldViewModel 由多个标准类型(int、strings 等)的字段组成。

我想要实现的是添加一个 OrderBy 到这个列表中,通过底部视图模型中的对象排序来拉回,如下所示:

然而,这给出了错误:

我不仅对 MVC 很陌生,而且对 C# 也很陌生;这个项目让我在飞行中学习了语言,所以请玩好 :)

谢谢,

标记