问题标签 [html-helper]

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 投票
6 回答
195677 浏览

css - 如何在 ASP.NET MVC 中将 CSS 类应用于 Html.ActionLink?

我正在使用VB.NET构建一个ASP.NET MVC应用程序,并且我正在尝试使用以下代码将 css 类应用于 a :Html.ActionLink

但是当我运行代码时,我收到以下错误:

编译器错误消息:BC30988:预期类型或“With”。

我是MVC的新手,我真的不知道我在做什么,所以我看不出那里有什么问题,因为我在其他地方使用基于示例的代码。

0 投票
1 回答
242 浏览

.net - 我该怎么做这个?使用表格单元格 Html 助手或其他方式?

我正在使用 asp.net mvc,但我不确定如何解决这个问题。我的数据库中有一个表,其中包含一些字段。

我想用这个生成一个表。所以我首先尝试制作一个 html 帮助程序来制作表格以及我需要的所有东西,但我发现它太难维护并且给真正希望看到表格的设计师带来问题,以便他们可以添加不同的东西如果他们愿意,可以到每一行或每一列。

现在,如果他们需要一些东西,我必须将其添加到他们的 html 助手中。所以它只是不工作,最好坚持使用脚手架的 html 表。

现在我的问题是这个数据库表中的 2 列用于样式。

就像我可能有这张桌子

所以查看 font-color 的实际颜色将从该数据库中获取。每行可能有不同的颜色。

所以我不确定如何很好地设置它。

就像我可以做这样的事情,因为我正在使用脚手架

这看起来很可怕(意大利面条代码),我认为应该有另一种方式。

所以我想也许我应该为表格单元格制作一个 html 助手。但我不知道该怎么做。

起初我做了这样的事情,Html.TableCell("test","a");第一个参数是“id”,第二个是 td 的“innertext”。

但后来我想,如果这是一个看起来如此愚蠢和凌乱的超长文本会发生什么。

所以我想也许可以做开始表单的作用,你可以把它放在 using 语句或其他东西中,但我不知道如何制作一个可以使用 using 语句的 html 助手。

我只是迷失了如何最好地使这个看起来不错并且仍然看起来像一张桌子。

谢谢

0 投票
3 回答
1472 浏览

c# - ASP.NET MVC 中的 string.Format 和 TagBuilder 之间有什么区别(如果有)?

我的 ASP.NET MVC 应用程序有一个 Html Helper 文件。他们中的大多数只是简单地返回一个格式化的字符串。

这是我的格式化字符串助手之一的示例:

这是一个 TagBuilder 版本,它给了我与上面相同的结果:

现在,我一直在阅读/学习 MVC 的一些站点,这些站点是从混合实现中获取的。有些人使用该TagBuilder方法,有些人使用string.Format(),有些人可以互换使用。

标签标签相当简单,所以只返回一个格式化的字符串而不是TagBuilder为像这样的标签实例化类会更好吗?

我不一定担心性能,我只是好奇为什么有些人选择 TagBuilder 而其他人使用格式化字符串。

谢谢开导!

0 投票
1 回答
528 浏览

asp.net - 在 ASP.NET MVC 中跳过或禁用指向当前路径的链接

我正在编写一个基本上接收许多RouteValueDictionary并返回许多链接的助手;我想跳过指向当前路由值的链接(例如:/Products/Details/3不应该有指向 的链接/Products/Details/3),忽略其他 URL 参数(如果有)。

我能想到的是检查是否:

  • 目标动作和控制器名称为空或等于当前;

  • 每个其他目标路由值都已定义并等于当前值,反之亦然。

有没有更好的办法?

编辑:

一些背景:我有很多模型,很多控制器,很多动作。我不喜欢到处一遍又一遍地写同样的东西,所以我决定编写一个通用的解决方案:权限感知图标链接(我在这里寻求提示)。

我现在有一个PermissionAwareIconAction类,它有Icon一个HasPermission()方法、一个获取 URL 的委托和其他一些东西。在里面Global.asax.cs我调用了一些方法来填充一个ActionTable包含所有这些东西的 ,使用如下代码:

当然,还有用于添加其他特定操作的代码。

我还用以下方式装饰我的控制器动作:

在内部视图中,我这样做:

在与单个对象无关的视图中,例如Index

在与对象相关的视图中,例如Details.

这样,权限只在一个类中定义;此外,根据权限显示或不显示链接Edit的代码与允许或不允许用户查看Edit操作的代码相同。

我快完成了(我计划在完成后回复我之前的问题,恢复我所做的事情)。

现在我还要做这件小事,避免Details图标在Details视图中,Index图标在Index视图中等等。

原谅我发了这么长的帖子。

0 投票
1 回答
1391 浏览

templates - 使用 EditorFor<> 渲染下拉列表

到目前为止,我们可以使用 Html.EditorFor() 为数据类型动态呈现适当的模板 - 例如字符串、int 或自定义类型,例如“地址”。

现在我想使用 EditorFor() 来呈现“父”字段。我想要一个包含每一行的下拉列表,并且用户从这个下拉列表中选择一个父级。

'Parent' 模板可以访问 'ParentID',但是行的名称和 ID 会怎样填充列表框呢?

这些应该从哪里来?

我可以将数据访问逻辑放在模板中,但这会违反关注点分离。

我可以创建一个呈现列表的 HtmlHelper,但这不会破坏关注点分离,因为 HtmlHelper 应该只做 UI 的东西,而不是数据访问?

有任何想法吗?

0 投票
1 回答
2508 浏览

c# - 在 ASP.NET MVC 中查看数据字典覆盖模型数据

我有一个视图来创建一个用户,如下所示。

单击“创建”按钮时,HTML 表单将发送到名为“SaveUser”的操作,该操作仅接受“POST”动词,如下所示。

保存用户后,页面被重定向到“EditUser”视图

问题是:隐藏字段的值一直显示为零。Model.Id大于零。似乎其他东西正在覆盖模型视图值。 ViewDataDictonary是嫌疑人。所以在action中返回视图之前添加一行如下。

果然,这行得通。隐藏字段现在具有正确用户 ID 的值。

我们找到了治疗症状的方法,但问题的根源在哪里?

我不喜欢每次在返回另一个视图之前清除视图数据字典的想法。

0 投票
4 回答
2526 浏览

html - 在 ASP.Net MVC 中控制输出缩进

我的同事在将正确格式化和缩进的 html 交付给客户端浏览器时非常“热”。这是为了使页面源代码易于人类阅读。

首先,如果我有一个在我的站点的多个不同区域中使用的局部视图,渲染引擎是否应该为我自动格式化缩进(ala 在 XmlTextWriter 上设置 Formatting 属性)?

其次,我的同事创建了许多用于写入响应的 HtmlHelper 扩展方法。这些都需要将 CurrentIndent 参数传递给它们。这对我来说是错误的。

有人能帮忙吗?

0 投票
1 回答
1336 浏览

c# - 将 css 类名传递给 asp.mvc 视图助手

在 ASP.NET MVC 视图助手中,您可以执行类似的操作

这将产生以下 HTML

我的问题是....如果我想设置“类”属性怎么办?

这不会编译,因为“类”是保留字。

有解决办法吗?

0 投票
3 回答
2164 浏览

asp.net-mvc - 在 MVC DropDownLists 中保留选定的值

我是 MVC 的新手,但我一直在研究这一切,阅读了所有文档、所有问题以及我能找到的所有博客文章,而我所做的只是完全缠绕在车轴上。

我正在尝试制作“创建”动作和视图。我的数据输入相对简单且常见:我有一个下拉列表和一个文本框。在我的例子中,我正在创建一个用户联系渠道,下拉框在电子邮件和 textmsg 之间进行选择,然后文本框输入相关的联系信息,可以是格式正确的电子邮件地址,也可以是手机号码。

这是我的视图页面的(稍微简化的形式):

我使用的是强类型 ViewData 模型,而不是使用 ViewDataDictionary。ChannelDescription 元素是一个 SelectList,它使用选择列表进行初始化,没有选择。

表单的初始显示、表单中的数据输入以及控制器从表单中提取数据都很顺利。

我的问题是如果数据包含错误,例如格式错误的电子邮件地址或手机号码,并且我必须返回视图,我无法成功重新显示下拉列表选择。ChannelDescription 元素在控制器中重新创建,用户选择作为选定项。我已经在视图的那一行设置了断点,并验证了项目列表的选定元素的 Selected 属性设置为 true,但它仍然显示默认的“选择通道”。

这似乎是一个非常普遍的情况,不应该这么难。我究竟做错了什么?

仅供参考,这是在 Firefox 3.5.2 下运行的 MVC 1.0 (Release)、Windows 7 和 VS 2008。

0 投票
1 回答
3817 浏览

asp.net-mvc - 覆盖 EditorForModel 模板

您可以为各个类型提供替代模板,但是否可以覆盖包装标签、字段和验证的模板。

改变:

到:

富有的