gpt4 book ai didi

asp.net-mvc - 为什么不是所有的表单控件都可以通过 HtmlHelper 呈现?

转载 作者:行者123 更新时间:2023-12-01 10:15:58 25 4
gpt4 key购买 nike

有谁知道为什么可以使用 System.Web.Mvc.HtmlHelper 呈现某些 HTML 表单控件? (隐藏、复选框、密码、文本框)还有一些不能而且应该明确地用 HTML 编写(文件、提交)?这种分离的原理是什么?

最佳答案

好问题。

我认为输入控件(例如输入、选择)包含在 Html 帮助程序中,因此它们可以通过 TempData 维护自己的状态,而无需用户编写大量代码来实现这一点。我还认为链接和表单控件被包装以提供一种简单而统一的方式来指定这些控件的 Controller /操作。大多数其他控件既不保证开箱即用的状态管理,也不需要构建 Controller /操作 URL。

当然,没有什么可以阻止您为您喜欢的任何控件编写自己的包装器 - 例如这是我使用的一对 - 这是一个用于 html 标签控件的:

public static string Label(this HtmlHelper helper, string fieldName, string labelText)
{
var sb = new StringBuilder();
sb.Append("<label for=\"");
sb.Append(fieldName);
sb.Append("\">");
sb.Append(labelText);
sb.Append("</label>");
return sb.ToString();
}

这是我使用的一个包装标签助手和文本框以生成带有标签的统一文本输入字段:

public static string TextField(this HtmlHelper helper, string labelText, string fieldName, string value)
{
return string.Concat(
"<div>",
helper.Label(fieldName, labelText),
helper.TextBox(fieldName, value),
"</div>");
}

关于asp.net-mvc - 为什么不是所有的表单控件都可以通过 HtmlHelper 呈现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/775965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com