- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要能够动态地向我正在处理的 MVC 5 应用程序中的 Tabel 添加/删除行。我还在我的项目中包含了 knockout,因为我用它来回发到我的 viewModel 上的预成型计算。
到目前为止我所做的是在我的用户模型上创建一个列表来保存 AdditionalUsers 的详细信息:
public List<AdditionalUser> AdditionalUsers { get; set; }
附加用户类定义为:
public class AdditionalUser
{
public string FirstName { get; set; }
public string Surname { get; set; }
public double Cost { get; set; }
}
然后我创建了一个 EditorTemplates 文件夹并创建了一个局部 View _AdditionalUser.cshtml,如下所示:
@model MyProject.Models.AdditionalUser
<td>
@Html.TextBoxFor(model => model.FirstName)
</td>
<td>
@Html.TextBoxFor(model => model.Surname)
</td>
<td>
@Html.TextBoxFor(model => model.Cost)
</td>
我需要在我的用户 View 上呈现的地方,我已经完成了以下操作:
<tr>
@Html.EditorFor(model => model.AdditionalUsers)
</tr>
彼此对 View 有3个。然后在我的 Controller 中执行此操作,我在那里新建了我的用户模型:
model.AdditionalUsers = new List<AdditionalUser>(2);
我原以为会在我调用 EditorFor 的 tr 中创建两个空白行,但没有呈现任何内容?这只是为了让 EditorTemplate 正常工作而进行的第一次测试。然后我想将其连接到动态添加和删除行的敲除,但首先我想知道为什么 EditorTemplate 没有按预期呈现?
最佳答案
您的编辑器模板命名不正确。 MVC 有两种方式来获取它:
按名字
使用与数据类型完全相同的名称命名模板:
DateTime.cshtml
String.cshtml
AdditionalUser.cshtml
明确地
在模型的属性中,使用 UIHint
属性:
public class MyModel
{
public SomeObject TheObject { get; set; }
[UIHint("SomeObject")]
public SomeObject AnotherObject { get; set; }
}
此外,您的代码对于呈现行不是很正确。您应该首先将 tr
标记添加到 View 中:
@model MyProject.Models.AdditionalUser
<tr>
<td>
@Html.TextBoxFor(model => model.FirstName)
</td>
<td>
@Html.TextBoxFor(model => model.Surname)
</td>
<td>
@Html.TextBoxFor(model => model.Cost)
</td>
</tr>
接下来将您的父 View 更改为如下所示(请注意,为清楚起见,我添加了表格标题行):
<table>
<tr>
<th>@Html.DisplayNameFor(m => m.FirstName)</th>
<th>@Html.DisplayNameFor(m => m.Surname)</th>
<th>@Html.DisplayNameFor(m => m.Cost)</th>
</tr>
@Html.EditorFor(model => model.AdditionalUsers)
</table>
关于c# - EditorTemplate 未按预期呈现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25164869/
我有一个 View ,用户可以通过选择复选框来选择任意数量的俱乐部。俱乐部是主模型的属性,类型为 List 。在重构时,我从以下开始: @using (Html.BeginForm()) {
我需要能够动态地向我正在处理的 MVC 5 应用程序中的 Tabel 添加/删除行。我还在我的项目中包含了 knockout,因为我用它来回发到我的 viewModel 上的预成型计算。 到目前为止我
我有一个带有enum的模型 public enum Gender { Male, Female, Unspecified } public class FooClass {
如何将一些额外的属性传递给 EditorTemplate? 我想像这样使用它(一种伪代码): @Html.EditorFor(m => m.ReturnFlight, new { additional
当字段具有特定名称 (PublishingMethod) 时,我需要一个枚举器字段的 EditorTemplate 替代品。 基于docs ,我在与原始形状相同的文件夹中创建了一个具有模式 [Shap
以下 EditorTemplate 无法按我希望的方式工作; " %> model.Selected, new { onclick = "SaveSelectio
我想为 jquery 星级评分插件创建一个编辑器模板。这是我的第一个 mvc3 项目,也是 jquery 的新手,我不知道如何设置。我想做的是允许用户对老师进行星级评价。例如,如果我单击 3 颗星,我
有没有办法在使用 EditorTemplates (With Lists) 计算出当前列表索引值时?例如在这个编辑器模板中 @model myModel @Html.TextBoxFor(x
在我当前的项目中,我有几个包含 subview 模型集合的 View 模型实例,如下所示: public class ParentViewModel { public ParentViewMo
我以表格格式显示数据。使用 EditorFor 和 EditorTemplates 时会自动生成表格。 在表格的每一行中,我都显示了 ID、姓名、国家/地区下拉列表、用于选择爱好的复选框和用于选择性别
根据我的阅读,EditorTemplates 文件夹必须位于 Views 文件夹中的 Shared 文件夹下。是否可以更改此位置? 谢谢。 最佳答案 我总是将我的 EditorTemplates 放在
假设我有一个 LineItem(来自过度使用的购物车示例),并且我想使用 EditorTemplate 来呈现它。 我完全可以从父 View (部分或其他)使用 @Html.EditorFor(m =
在 ASP.NET-MVC2 项目中,我构建了一些位于 Views\Shared\EditorTemplates 和 DisplayTemplates 文件夹中的用户控件。 我正在尝试将此模板拉入类库
我不想将字典绑定(bind)到 View 。但模型似乎是空的。棘手的部分是我在另一个 View 中使用一个 View ,我无法弄清楚我的错误在哪里。 到目前为止,这是我的代码: 第一个模型: publ
我根据其他一些 SO 问题和 Google 结果编写了以下 EditorTemplate: @model Nullable @{ var metadata = ModelMetadata.Fr
我为 currency 浮点格式创建了一个编辑器模板。 @using System.Globalization @{ var ri = new RegionInfo(System.Thread
我有一个 ASP.NET MVC 4 站点,我将嵌套属性传递给 EditorTemplate 并使用 ViewData.ModelMetadata.PropertyName 构建字段名称,但是,这会获
是否可以将 ASP.NET Core Web 应用程序配置为使用编译为类库/单独程序集的 EditorTemplate razor 页面? 作为示例,以下问题详细说明了如何将 ViewComponen
我正在使用 Bootstrap 模板,其复选框模板如下所示: Checkbox 1 我需要一个用于 bool 值的 MVC EditorTem
我创建了这个编辑器模板: @model DateTime? @using MyMvcApp.Properties // @* Date - should
我是一名优秀的程序员,十分优秀!